33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/spiderfw/model/storage/db/connectors/jdbc_oracle.rb', line 33
def new_connection(user, pass, dbname, role)
driver = Connectors::JDBC.driver_class('oracle.jdbc.driver.OracleDriver')
host = nil; port = nil; sid = nil
if dbname =~ /(.+)(?::(\d+))?\/(.+)/
host = $1
port = $2
sid = $3
else
raise ArgumentError, "Oracle db name must be in the host:port/SID form"
end
port ||= 1521
url = "jdbc:oracle:thin:@#{host}:#{port}:#{sid}"
conn = begin
Jdbc::DriverManager.getConnection(url, user, pass)
rescue => exc
props = java.util.Properties.new
props.setProperty("user", user)
props.setProperty("password", pass)
driver.new.connect(url, props)
end
conn.setAutoCommit(true)
return conn
end
|