@@ -66,18 +66,32 @@ func GenOracleRaw(u *dburl.URL) (string, string, error) {
66
66
67
67
func genJDBCOracle (u * dburl.URL ) (string , string , error ) {
68
68
if u .User == nil {
69
- return go_ora .BuildJDBC ("" , "" , u .Host , map [ string ] string {} ), "" , nil
69
+ return go_ora .BuildJDBC ("" , "" , u .Host , getOptions ( u ) ), "" , nil
70
70
}
71
71
72
72
if un := u .User .Username (); len (un ) > 0 {
73
73
if up , ok := u .User .Password (); ok {
74
- return go_ora .BuildJDBC (u .User .Username (), up , u .Host , map [ string ] string {} ), "" , nil
74
+ return go_ora .BuildJDBC (u .User .Username (), up , u .Host , getOptions ( u ) ), "" , nil
75
75
} else {
76
- return go_ora .BuildJDBC (u .User .Username (), "" , u .Host , map [ string ] string {} ), "" , nil
76
+ return go_ora .BuildJDBC (u .User .Username (), "" , u .Host , getOptions ( u ) ), "" , nil
77
77
}
78
78
}
79
79
80
- return go_ora .BuildJDBC ("" , "" , u .Host , map [string ]string {}), "" , nil
80
+ return go_ora .BuildJDBC ("" , "" , u .Host , getOptions (u )), "" , nil
81
+ }
82
+
83
+ func getOptions (u * dburl.URL ) map [string ]string {
84
+ values := u .Query ()
85
+
86
+ options := make (map [string ]string , len (values ))
87
+
88
+ for key , vals := range values {
89
+ if len (vals ) > 0 {
90
+ options [key ] = vals [len (vals )- 1 ]
91
+ }
92
+ }
93
+
94
+ return options
81
95
}
82
96
83
97
func init () {
0 commit comments