Included modules
Constants
CONNECTION_ERROR_CODES | = | [ 28, 1012, 3113, 3114 ] |
ORA-00028: your session has been killed ORA-01012: not logged on ORA-03113: end-of-file on communication channel ORA-03114: not connected to ORACLE |
|
ORACLE_TYPES | = | { :blob=>lambda{|b| Sequel::SQL::Blob.new(b.read)}, :clob=>lambda{|b| b.read} } | ||
PS_TYPES | = | {'string'.freeze=>String, 'integer'.freeze=>Integer, 'float'.freeze=>Float, 'decimal'.freeze=>Float, 'date'.freeze=>Time, 'datetime'.freeze=>Time, 'time'.freeze=>Time, 'boolean'.freeze=>String, 'blob'.freeze=>OCI8::BLOB} |
Attributes
conversion_procs | [R] |
Hash of conversion procs for this database. |
Public Instance methods
connect
(server)
[show source]
# File lib/sequel/adapters/oracle.rb, line 24 def connect(server) opts = server_opts(server) if opts[:database] dbname = opts[:host] ? "//#{opts[:host]}#{":#{opts[:port]}" if opts[:port]}/#{opts[:database]}" : opts[:database] else dbname = opts[:host] end conn = OCI8.new(opts[:user], opts[:password], dbname, opts[:privilege]) if prefetch_rows = opts.fetch(:prefetch_rows, 100) conn.prefetch_rows = typecast_value_integer(prefetch_rows) end conn.autocommit = true conn.non_blocking = true # The ruby-oci8 gem which retrieves oracle columns with a type of # DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE is complex based on the # ruby version (1.9.2 or later) and Oracle version (9 or later) # In the now standard case of 1.9.2 and Oracle 9 or later, the timezone # is determined by the Oracle session timezone. Thus if the user # requests Sequel provide UTC timezone to the application, # we need to alter the session timezone to be UTC if Sequel.application_timezone == :utc conn.exec("ALTER SESSION SET TIME_ZONE='-00:00'") end class << conn attr_reader :prepared_statements end conn.instance_variable_set(:@prepared_statements, {}) conn end
disconnect_connection
(c)
[show source]
# File lib/sequel/adapters/oracle.rb, line 58 def disconnect_connection(c) c.logoff rescue OCIInvalidHandle nil end
execute
(sql, opts=OPTS, &block)
[show source]
# File lib/sequel/adapters/oracle.rb, line 64 def execute(sql, opts=OPTS, &block) _execute(nil, sql, opts, &block) end
execute_insert
(sql, opts=OPTS)
[show source]
# File lib/sequel/adapters/oracle.rb, line 68 def execute_insert(sql, opts=OPTS) _execute(:insert, sql, opts) end