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-03113: end-of-file on communication channel ORA-03114: not connected to ORACLE
[ 28, 1012, 3113, 3114 ]
- ORACLE_TYPES =
{ :blob=>lambda{|b| Sequel::SQL::Blob.new(b.read)}, :clob=>lambda{|b| b.read} }
- DatasetClass =
self
Constants included from DatabaseMethods
Sequel::Oracle::DatabaseMethods::AUTOINCREMENT, Sequel::Oracle::DatabaseMethods::TEMPORARY
Constants inherited from Database
Database::ADAPTERS, Database::AUTOINCREMENT, Database::COLUMN_DEFINITION_ORDER, Database::COLUMN_SCHEMA_DATETIME_TYPES, Database::COLUMN_SCHEMA_STRING_TYPES, Database::COMBINABLE_ALTER_TABLE_OPS, Database::COMMA_SEPARATOR, Database::CURRENT_TIMESTAMP_RE, Database::DEFAULT_DATABASE_ERROR_REGEXPS, Database::DEFAULT_JOIN_TABLE_COLUMN_OPTIONS, Database::DEFAULT_STRING_COLUMN_SIZE, Database::EXTENSIONS, Database::NOT_NULL, Database::NULL, Database::PRIMARY_KEY, Database::SCHEMA_TYPE_CLASSES, Database::SQL_BEGIN, Database::SQL_COMMIT, Database::SQL_RELEASE_SAVEPOINT, Database::SQL_ROLLBACK, Database::SQL_ROLLBACK_TO_SAVEPOINT, Database::SQL_SAVEPOINT, Database::STRING_DEFAULT_RE, Database::TEMPORARY, Database::TRANSACTION_BEGIN, Database::TRANSACTION_COMMIT, Database::TRANSACTION_ISOLATION_LEVELS, Database::TRANSACTION_ROLLBACK, Database::UNDERSCORE, Database::UNIQUE, Database::UNSIGNED
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, #dataset_class, #default_schema, #default_string_column_size, #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 = {}, &block) ⇒ Object (also: #do)
- #execute_insert(sql, opts = {}) ⇒ Object
-
#initialize(opts = {}) ⇒ Database
constructor
A new instance of Database.
Methods included from DatabaseMethods
#create_sequence, #create_trigger, #current_user, #database_type, #drop_sequence, #global_index_namespace?, #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_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, #dump_foreign_key_migration, #dump_indexes_migration, #dump_schema_cache, #dump_schema_cache?, #dump_schema_migration, #dump_table_schema, #each_server, #execute_ddl, #execute_dui, #extend_datasets, #extension, extension, #fetch, #foreign_key_list, #from, #from_application_timestamp, #get, #global_index_namespace?, #identifier_input_method, identifier_input_method, identifier_input_method=, #identifier_input_method=, #identifier_output_method, identifier_output_method, #identifier_output_method=, identifier_output_method=, #in_transaction?, #indexes, #inspect, #literal, #load_schema_cache, #load_schema_cache?, #log_exception, #log_info, #log_yield, #logger=, #prepared_statement, #query, #quote_identifier, #quote_identifiers=, quote_identifiers=, #quote_identifiers?, register_extension, #remove_servers, #rename_column, #rename_table, #run, run_after_initialize, #schema, #schema_type_class, #select, #serial_primary_key_options, #servers, #set_column_default, #set_column_type, #set_prepared_statement, single_threaded=, #single_threaded?, #supports_create_table_if_not_exists?, #supports_deferrable_constraints?, #supports_deferrable_foreign_key_constraints?, #supports_drop_table_if_exists?, #supports_prepared_transactions?, #supports_savepoints?, #supports_savepoints_in_prepared_transactions?, #supports_schema_parsing?, #supports_transaction_isolation_levels?, #supports_transactional_ddl?, #synchronize, #table_exists?, #tables, #test_connection, #to_application_timestamp, #transaction, #typecast_value, #uri, #url, #valid_connection?, #views
Methods included from Metaprogramming
Constructor Details
#initialize(opts = {}) ⇒ Database
24 25 26 27 28 29 |
# File 'lib/sequel/adapters/oracle.rb', line 24 def initialize(opts={}) super @autosequence = opts[:autosequence] @primary_key_sequences = {} @conversion_procs = ORACLE_TYPES.dup end |
Instance Attribute Details
#conversion_procs ⇒ Object (readonly)
Hash of conversion procs for this database.
22 23 24 |
# File 'lib/sequel/adapters/oracle.rb', line 22 def conversion_procs @conversion_procs end |
Instance Method Details
#connect(server) ⇒ Object
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 61 62 63 |
# File 'lib/sequel/adapters/oracle.rb', line 31 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) ⇒ Object
65 66 67 68 69 |
# File 'lib/sequel/adapters/oracle.rb', line 65 def disconnect_connection(c) c.logoff rescue OCIInvalidHandle nil end |
#execute(sql, opts = {}, &block) ⇒ Object Also known as: do
71 72 73 |
# File 'lib/sequel/adapters/oracle.rb', line 71 def execute(sql, opts={}, &block) _execute(nil, sql, opts, &block) end |
#execute_insert(sql, opts = {}) ⇒ Object
76 77 78 |
# File 'lib/sequel/adapters/oracle.rb', line 76 def execute_insert(sql, opts={}) _execute(:insert, sql, opts) end |