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)}}
- 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::COMMA_SEPARATOR, Database::DEFAULT_JOIN_TABLE_COLUMN_OPTIONS, Database::MSSQL_DEFAULT_RE, Database::MYSQL_TIMESTAMP_RE, Database::NOT_NULL, Database::NULL, Database::POSTGRES_DEFAULT_RE, Database::PRIMARY_KEY, 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, #log_warn_duration, #loggers, #opts, #pool, #prepared_statements, #sql_log_level, #timezone, #transaction_isolation_level
Instance Method Summary collapse
- #connect(server) ⇒ 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, #tables, #view_exists?, #views
Methods inherited from Database
#<<, #[], adapter_class, adapter_scheme, #adapter_scheme, #add_column, #add_index, #add_servers, #after_commit, #after_rollback, #alter_table, #call, #cast_type_literal, connect, #create_join_table, #create_or_replace_view, #create_table, #create_table!, #create_table?, #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, #fetch, #foreign_key_list, #from, #from_application_timestamp, #get, #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_identifiers=, quote_identifiers=, #quote_identifiers?, #remove_servers, #rename_column, #rename_table, #run, #schema, #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_drop_table_if_exists?, #supports_prepared_transactions?, #supports_savepoints?, #supports_savepoints_in_prepared_transactions?, #supports_transaction_isolation_levels?, #supports_transactional_ddl?, #synchronize, #table_exists?, #tables, #test_connection, #to_application_timestamp, #transaction, #typecast_value, #uri, #url, #views
Methods included from Metaprogramming
Constructor Details
#initialize(opts = {}) ⇒ Database
Returns a new instance of Database.
21 22 23 24 25 26 |
# File 'lib/sequel/adapters/oracle.rb', line 21 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.
19 20 21 |
# File 'lib/sequel/adapters/oracle.rb', line 19 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 |
# 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]) conn.prefetch_rows = typecast_value_integer(opts[:prefetch_rows]) if opts[:prefetch_rows] 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 |
#execute(sql, opts = {}, &block) ⇒ Object Also known as: do
60 61 62 |
# File 'lib/sequel/adapters/oracle.rb', line 60 def execute(sql, opts={}, &block) _execute(nil, sql, opts, &block) end |
#execute_insert(sql, opts = {}) ⇒ Object
65 66 67 |
# File 'lib/sequel/adapters/oracle.rb', line 65 def execute_insert(sql, opts={}) _execute(:insert, sql, opts) end |