module Sequel::JDBC::Oracle::DatabaseMethods

Instance methods for Oracle Database objects accessed via JDBC.

Constants

PRIMARY_KEY_INDEX_RE

Public Class Methods

extended(db) click to toggle source
# File lib/sequel/adapters/jdbc/oracle.rb, line 40
def self.extended(db)
  db.instance_eval do
    @autosequence = opts[:autosequence]
    @primary_key_sequences = {}
  end
end

Private Instance Methods

database_exception_use_sqlstates?() click to toggle source

Oracle exception handling with SQLState is less accurate than with regexps.

# File lib/sequel/adapters/jdbc/oracle.rb, line 50
def database_exception_use_sqlstates?
  false
end
default_fetch_size() click to toggle source

Default the fetch size for statements to 100, similar to the oci8-based oracle adapter.

# File lib/sequel/adapters/jdbc/oracle.rb, line 59
def default_fetch_size
  100
end
disconnect_error?(exception, opts) click to toggle source
Calls superclass method
# File lib/sequel/adapters/jdbc/oracle.rb, line 54
def disconnect_error?(exception, opts)
  super || exception.message =~ /\AClosed Connection/
end
last_insert_id(conn, opts) click to toggle source
# File lib/sequel/adapters/jdbc/oracle.rb, line 63
def last_insert_id(conn, opts)
  unless sequence = opts[:sequence]
    if t = opts[:table]
      sequence = sequence_for_table(t)
    end
  end
  if sequence
    sql = "SELECT #{literal(sequence)}.currval FROM dual"
    statement(conn) do |stmt|
      begin
        rs = log_yield(sql){stmt.executeQuery(sql)}
        rs.next
        rs.getInt(1)
      rescue java.sql.SQLException
        nil
      end
    end
  end
end
primary_key_index_re() click to toggle source

Primary key indexes appear to start with sys_ on Oracle

# File lib/sequel/adapters/jdbc/oracle.rb, line 84
def primary_key_index_re
  PRIMARY_KEY_INDEX_RE
end
schema_parse_table(*) click to toggle source
Calls superclass method
# File lib/sequel/adapters/jdbc/oracle.rb, line 88
def schema_parse_table(*)
  sch = super
  sch.each do |c, s|
    if s[:type] == :decimal && s[:scale] == -127
      s[:type] = :integer
    elsif s[:db_type] == 'DATE'
      s[:type] = :datetime
    end
  end
  sch
end
schema_parse_table_skip?(h, schema) click to toggle source
Calls superclass method
# File lib/sequel/adapters/jdbc/oracle.rb, line 100
def schema_parse_table_skip?(h, schema)
  super || (h[:table_schem] != current_user unless schema)
end
setup_type_convertor_map() click to toggle source
Calls superclass method
# File lib/sequel/adapters/jdbc/oracle.rb, line 109
def setup_type_convertor_map
  super
  @type_convertor_map[:OracleDecimal] = TypeConvertor::INSTANCE.method(:OracleDecimal)
end
supports_releasing_savepoints?() click to toggle source

As of Oracle 9.2, releasing savepoints is no longer supported.

# File lib/sequel/adapters/jdbc/oracle.rb, line 105
def supports_releasing_savepoints?
  false
end