Module Sequel::Oracle::DatabaseMethods
In: lib/sequel/adapters/shared/oracle.rb

Methods

Constants

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}

Attributes

autosequence  [RW] 

Public Instance methods

[Source]

    # File lib/sequel/adapters/shared/oracle.rb, line 13
13:       def create_sequence(name, opts=OPTS)
14:         self << create_sequence_sql(name, opts)
15:       end

[Source]

    # File lib/sequel/adapters/shared/oracle.rb, line 17
17:       def create_trigger(*args)
18:         self << create_trigger_sql(*args)
19:       end

[Source]

    # File lib/sequel/adapters/shared/oracle.rb, line 21
21:       def current_user
22:         @current_user ||= metadata_dataset.get{sys_context('USERENV', 'CURRENT_USER')}
23:       end

Oracle uses the :oracle database type

[Source]

    # File lib/sequel/adapters/shared/oracle.rb, line 30
30:       def database_type
31:         :oracle
32:       end

[Source]

    # File lib/sequel/adapters/shared/oracle.rb, line 25
25:       def drop_sequence(name)
26:         self << drop_sequence_sql(name)
27:       end

[Source]

    # File lib/sequel/adapters/shared/oracle.rb, line 34
34:       def foreign_key_list(table, opts=OPTS)
35:         m = output_identifier_meth
36:         im = input_identifier_meth
37:         schema, table = schema_and_table(table)
38:         ds = metadata_dataset.
39:           from(:all_cons_columns___pc, :all_constraints___p, :all_cons_columns___fc, :all_constraints___f).
40:           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).
41:           select(:p__table_name___table, :pc__column_name___key, :fc__column_name___column, :f__constraint_name___name).
42:           order(:table, :fc__position)
43:         ds = ds.where(:f__schema_name=>im.call(schema)) if schema
44: 
45:         fks = {}
46:         ds.each do |r|
47:           if fk = fks[r[:name]]
48:             fk[:columns] << m.call(r[:column])
49:             fk[:key] << m.call(r[:key])
50:           else
51:             fks[r[:name]] = {:name=>m.call(r[:name]), :columns=>[m.call(r[:column])], :table=>m.call(r[:table]), :key=>[m.call(r[:key])]}
52:           end
53:         end
54:         fks.values
55:       end

Oracle namespaces indexes per table.

[Source]

    # File lib/sequel/adapters/shared/oracle.rb, line 58
58:       def global_index_namespace?
59:         false
60:       end

Oracle supports deferrable constraints.

[Source]

    # File lib/sequel/adapters/shared/oracle.rb, line 92
92:       def supports_deferrable_constraints?
93:         true
94:       end

Oracle supports transaction isolation levels.

[Source]

    # File lib/sequel/adapters/shared/oracle.rb, line 97
97:       def supports_transaction_isolation_levels?
98:         true
99:       end

[Source]

    # File lib/sequel/adapters/shared/oracle.rb, line 64
64:       def tables(opts=OPTS)
65:         m = output_identifier_meth
66:         metadata_dataset.from(:all_tables).
67:           server(opts[:server]).
68:           where(:dropped=>'NO').
69:           exclude(:owner=>IGNORE_OWNERS).
70:           select(:table_name).
71:           map{|r| m.call(r[:table_name])}
72:       end

[Source]

    # File lib/sequel/adapters/shared/oracle.rb, line 83
83:       def view_exists?(name) 
84:         m = input_identifier_meth
85:         metadata_dataset.from(:all_views).
86:           exclude(:owner=>IGNORE_OWNERS).
87:           where(:view_name=>m.call(name)).
88:           count > 0
89:       end

[Source]

    # File lib/sequel/adapters/shared/oracle.rb, line 74
74:       def views(opts=OPTS) 
75:         m = output_identifier_meth
76:         metadata_dataset.from(:all_views).
77:           server(opts[:server]).
78:           exclude(:owner=>IGNORE_OWNERS).
79:           select(:view_name).
80:           map{|r| m.call(r[:view_name])}
81:       end

[Validate]