class Sequel::Oracle::Database

Constants

CONNECTION_ERROR_CODES

ORA-00028: your session has been killed ORA-01012: not logged on ORA-02396: exceeded maximum idle time, please connect again ORA-03113: end-of-file on communication channel ORA-03114: not connected to ORACLE ORA-03135: connection lost contact

ORACLE_TYPES
PS_TYPES

Attributes

conversion_procs[R]

Hash of conversion procs for this database.

Public Instance Methods

connect(server) click to toggle source
   # File lib/sequel/adapters/oracle.rb
28 def connect(server)
29   opts = server_opts(server)
30   if opts[:database]
31     dbname = opts[:host] ? \
32       "//#{opts[:host]}#{":#{opts[:port]}" if opts[:port]}/#{opts[:database]}" : opts[:database]
33   else
34     dbname = opts[:host]
35   end
36   conn = OCI8.new(opts[:user], opts[:password], dbname, opts[:privilege])
37   if prefetch_rows = opts.fetch(:prefetch_rows, 100)
38     conn.prefetch_rows = typecast_value_integer(prefetch_rows)
39   end
40   conn.autocommit = true
41   conn.non_blocking = true
42   
43   # The ruby-oci8 gem which retrieves oracle columns with a type of
44   # DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE is complex based on the
45   # ruby version and Oracle version (9 or later)
46   # In the now standard case of Oracle 9 or later, the timezone
47   # is determined by the Oracle session timezone. Thus if the user
48   # requests Sequel provide UTC timezone to the application,
49   # we need to alter the session timezone to be UTC
50   if Sequel.application_timezone == :utc
51     conn.exec("ALTER SESSION SET TIME_ZONE='-00:00'")
52   end
53   
54   class << conn
55     attr_reader :prepared_statements
56   end
57   conn.instance_variable_set(:@prepared_statements, {})
58   
59   conn
60 end
disconnect_connection(c) click to toggle source
   # File lib/sequel/adapters/oracle.rb
62 def disconnect_connection(c)
63   c.logoff
64 rescue OCIException
65   nil
66 end
execute(sql, opts=OPTS, &block) click to toggle source
   # File lib/sequel/adapters/oracle.rb
68 def execute(sql, opts=OPTS, &block)
69   _execute(nil, sql, opts, &block)
70 end
execute_insert(sql, opts=OPTS) click to toggle source
   # File lib/sequel/adapters/oracle.rb
72 def execute_insert(sql, opts=OPTS)
73   _execute(:insert, sql, opts)
74 end
freeze() click to toggle source
Calls superclass method Sequel::Oracle::DatabaseMethods#freeze
   # File lib/sequel/adapters/oracle.rb
76 def freeze
77   @conversion_procs.freeze
78   super
79 end