Class: SCAnalytics::Connections::Oracle
Instance Attribute Summary
Attributes inherited from Connection
#host, #port, #service, #username
Instance Method Summary
collapse
Constructor Details
#initialize(connection_name, options) ⇒ Oracle
Returns a new instance of Oracle.
7
8
9
10
11
12
|
# File 'lib/sc_analytics/connections/oracle.rb', line 7
def initialize(connection_name, options)
super
parse_db_url
connect
end
|
Instance Method Details
#connect ⇒ Object
40
41
42
43
44
|
# File 'lib/sc_analytics/connections/oracle.rb', line 40
def connect
super do
@client = OCI8.new @username, @password, @db_url
end
end
|
#define_col_types_for(query, cursor) ⇒ Object
14
15
16
17
18
19
20
|
# File 'lib/sc_analytics/connections/oracle.rb', line 14
def define_col_types_for(query, cursor)
(query.columns_to_cast || {}).each_pair do |type, cols|
cols.each do |col|
cursor.define(col, type)
end
end
end
|
#get_cursor_for(query) ⇒ Object
22
23
24
|
# File 'lib/sc_analytics/connections/oracle.rb', line 22
def get_cursor_for(query)
cursor = @client.parse(query.sql)
end
|
#parse_db_url ⇒ Object
46
47
48
49
50
51
52
53
54
|
# File 'lib/sc_analytics/connections/oracle.rb', line 46
def parse_db_url
url = []
url << "//#{@host}" if @host
url << ":#{@port}" if @port
url << "/" if @host
url << @service
@db_url = url.join
end
|
#run(query, cursor) ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/sc_analytics/connections/oracle.rb', line 26
def run(query, cursor)
cursor.exec
define_col_types_for query, cursor
= cursor.get_col_names
results = []
while row = cursor.fetch
results << row
end
Struct::QueryResult.new(, results)
end
|