Class: Sequel::Oracle::Database
- Includes:
- DatabaseMethods
- Defined in:
- lib/sequel/adapters/oracle.rb
Constant Summary collapse
- 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
[ 28, 1012, 2396, 3113, 3114, 3135 ].freeze
- ORACLE_TYPES =
{ :blob=>lambda{|b| Sequel::SQL::Blob.new(b.read)}, :clob=>:read.to_proc }.freeze
Constants included from DatabaseMethods
Sequel::Oracle::DatabaseMethods::IGNORE_OWNERS
Constants inherited from Database
Database::ADAPTERS, Database::COLUMN_DEFINITION_ORDER, Database::COLUMN_SCHEMA_DATETIME_TYPES, Database::COLUMN_SCHEMA_STRING_TYPES, Database::COMBINABLE_ALTER_TABLE_OPS, Database::DEFAULT_DATABASE_ERROR_REGEXPS, Database::DEFAULT_STRING_COLUMN_SIZE, Database::EXTENSIONS, Database::OPTS, Database::SCHEMA_TYPE_CLASSES, Database::TRANSACTION_ISOLATION_LEVELS
Instance Attribute Summary collapse
-
#conversion_procs ⇒ Object
readonly
Hash of conversion procs for this database.
Attributes included from DatabaseMethods
Attributes inherited from Database
#cache_schema, #check_string_typecast_bytesize, #dataset_class, #default_string_column_size, #log_connection_info, #log_warn_duration, #loggers, #opts, #pool, #prepared_statements, #sql_log_level, #timezone, #transaction_isolation_level
Instance Method Summary collapse
- #connect(server) ⇒ Object
- #disconnect_connection(c) ⇒ Object
- #execute(sql, opts = OPTS, &block) ⇒ Object
- #execute_insert(sql, opts = OPTS) ⇒ Object
- #freeze ⇒ Object
Methods included from DatabaseMethods
#create_sequence, #create_trigger, #current_user, #database_type, #drop_sequence, #foreign_key_list, #global_index_namespace?, #server_version, #supports_deferrable_constraints?, #supports_transaction_isolation_levels?, #tables, #view_exists?, #views
Methods inherited from Database
#<<, #[], adapter_class, adapter_scheme, #adapter_scheme, #add_column, #add_index, #add_servers, #after_commit, after_initialize, #after_rollback, #alter_table, #alter_table_generator, #call, #cast_type_literal, connect, #create_join_table, #create_join_table!, #create_join_table?, #create_or_replace_view, #create_table, #create_table!, #create_table?, #create_table_generator, #create_view, #database_type, #dataset, #disconnect, #drop_column, #drop_index, #drop_join_table, #drop_table, #drop_table?, #drop_view, #execute_ddl, #execute_dui, #extend_datasets, #extension, extension, #fetch, #from, #from_application_timestamp, #get, #global_index_namespace?, #in_transaction?, #initialize, #inspect, #literal, #literal_symbol, #literal_symbol_set, load_adapter, #log_connection_yield, #log_exception, #log_info, #logger=, #new_connection, #prepared_statement, #quote_identifier, register_extension, #remove_servers, #rename_column, #rename_table, #rollback_checker, #rollback_on_exit, #run, run_after_initialize, #schema, #schema_type_class, #select, #serial_primary_key_options, #servers, #set_column_default, #set_column_type, #set_prepared_statement, set_shared_adapter_scheme, #sharded?, #single_threaded?, #supports_create_table_if_not_exists?, #supports_deferrable_constraints?, #supports_deferrable_foreign_key_constraints?, #supports_drop_table_if_exists?, #supports_foreign_key_parsing?, #supports_index_parsing?, #supports_partial_indexes?, #supports_prepared_transactions?, #supports_savepoints?, #supports_savepoints_in_prepared_transactions?, #supports_schema_parsing?, #supports_table_listing?, #supports_transaction_isolation_levels?, #supports_transactional_ddl?, #supports_view_listing?, #supports_views_with_check_option?, #supports_views_with_local_check_option?, #synchronize, #table_exists?, #test_connection, #to_application_timestamp, #transaction, #typecast_value, #uri, #url, #valid_connection?
Constructor Details
This class inherits a constructor from Sequel::Database
Instance Attribute Details
#conversion_procs ⇒ Object (readonly)
Hash of conversion procs for this database.
26 27 28 |
# File 'lib/sequel/adapters/oracle.rb', line 26 def conversion_procs @conversion_procs end |
Instance Method Details
#connect(server) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/sequel/adapters/oracle.rb', line 28 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 and Oracle version (9 or later) # In the now standard case of 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) ⇒ Object
62 63 64 65 66 |
# File 'lib/sequel/adapters/oracle.rb', line 62 def disconnect_connection(c) c.logoff rescue OCIException nil end |
#execute(sql, opts = OPTS, &block) ⇒ Object
68 69 70 |
# File 'lib/sequel/adapters/oracle.rb', line 68 def execute(sql, opts=OPTS, &block) _execute(nil, sql, opts, &block) end |
#execute_insert(sql, opts = OPTS) ⇒ Object
72 73 74 |
# File 'lib/sequel/adapters/oracle.rb', line 72 def execute_insert(sql, opts=OPTS) _execute(:insert, sql, opts) end |
#freeze ⇒ Object
76 77 78 79 |
# File 'lib/sequel/adapters/oracle.rb', line 76 def freeze @conversion_procs.freeze super end |