Module | Sequel::Oracle::DatabaseMethods |
In: |
lib/sequel/adapters/shared/oracle.rb
|
TEMPORARY | = | 'GLOBAL TEMPORARY '.freeze |
AUTOINCREMENT | = | ''.freeze |
IGNORE_OWNERS | = | %w'APEX_040000 CTXSYS EXFSYS MDSYS OLAPSYS ORDDATA ORDSYS SYS SYSTEM XDB XDBMETADATA XDBPM XFILES WMSYS' |
DATABASE_ERROR_REGEXPS | = | { /unique constraint .+ violated/ => UniqueConstraintViolation, /integrity constraint .+ violated/ => ForeignKeyConstraintViolation, /check constraint .+ violated/ => CheckConstraintViolation, /cannot insert NULL into|cannot update .+ to NULL/ => NotNullConstraintViolation, /can't serialize access for this transaction/ => SerializationFailure, }.freeze |
TRANSACTION_ISOLATION_LEVELS | = | {:uncommitted=>'READ COMMITTED'.freeze, :committed=>'READ COMMITTED'.freeze, :repeatable=>'SERIALIZABLE'.freeze, :serializable=>'SERIALIZABLE'.freeze} |
autosequence | [RW] |
# File lib/sequel/adapters/shared/oracle.rb, line 24 24: def create_sequence(name, opts=OPTS) 25: self << create_sequence_sql(name, opts) 26: end
# File lib/sequel/adapters/shared/oracle.rb, line 28 28: def create_trigger(*args) 29: self << create_trigger_sql(*args) 30: end
# File lib/sequel/adapters/shared/oracle.rb, line 32 32: def current_user 33: @current_user ||= metadata_dataset.get{sys_context('USERENV', 'CURRENT_USER')} 34: end
# File lib/sequel/adapters/shared/oracle.rb, line 36 36: def drop_sequence(name) 37: self << drop_sequence_sql(name) 38: end
# File lib/sequel/adapters/shared/oracle.rb, line 45 45: def foreign_key_list(table, opts=OPTS) 46: m = output_identifier_meth 47: im = input_identifier_meth 48: schema, table = schema_and_table(table) 49: ds = metadata_dataset. 50: from(:all_cons_columns___pc, :all_constraints___p, :all_cons_columns___fc, :all_constraints___f). 51: where(:f__table_name=>im.call(table), :f__constraint_type=>'R', :p__owner=>:f__r_owner, :p__constraint_name=>:f__r_constraint_name, :pc__owner=>:p__owner, :pc__constraint_name=>:p__constraint_name, :pc__table_name=>:p__table_name, :fc__owner=>:f__owner, :fc__constraint_name=>:f__constraint_name, :fc__table_name=>:f__table_name, :fc__position=>:pc__position). 52: select(:p__table_name___table, :pc__column_name___key, :fc__column_name___column, :f__constraint_name___name). 53: order(:table, :fc__position) 54: ds = ds.where(:f__schema_name=>im.call(schema)) if schema 55: 56: fks = {} 57: ds.each do |r| 58: if fk = fks[r[:name]] 59: fk[:columns] << m.call(r[:column]) 60: fk[:key] << m.call(r[:key]) 61: else 62: fks[r[:name]] = {:name=>m.call(r[:name]), :columns=>[m.call(r[:column])], :table=>m.call(r[:table]), :key=>[m.call(r[:key])]} 63: end 64: end 65: fks.values 66: end
The version of the Oracle server, used for determining capability.
# File lib/sequel/adapters/shared/oracle.rb, line 103 103: def server_version(server=nil) 104: return @server_version if @server_version 105: @server_version = synchronize(server) do |conn| 106: (conn.server_version rescue nil) if conn.respond_to?(:server_version) 107: end 108: unless @server_version 109: @server_version = if m = /(\d+)\.(\d+)\.?(\d+)?\.?(\d+)?/.match(fetch("select version from PRODUCT_COMPONENT_VERSION where lower(product) like 'oracle%'").single_value) 110: (m[1].to_i*1000000) + (m[2].to_i*10000) + (m[3].to_i*100) + m[4].to_i 111: else 112: 0 113: end 114: end 115: @server_version 116: end
# File lib/sequel/adapters/shared/oracle.rb, line 75 75: def tables(opts=OPTS) 76: m = output_identifier_meth 77: metadata_dataset.from(:all_tables). 78: server(opts[:server]). 79: where(:dropped=>'NO'). 80: exclude(:owner=>IGNORE_OWNERS). 81: select(:table_name). 82: map{|r| m.call(r[:table_name])} 83: end
# File lib/sequel/adapters/shared/oracle.rb, line 94 94: def view_exists?(name) 95: m = input_identifier_meth 96: metadata_dataset.from(:all_views). 97: exclude(:owner=>IGNORE_OWNERS). 98: where(:view_name=>m.call(name)). 99: count > 0 100: end