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(&:read) }
- DatasetClass =
self
Constants included from DatabaseMethods
Sequel::Oracle::DatabaseMethods::AUTOINCREMENT, Sequel::Oracle::DatabaseMethods::IGNORE_OWNERS, 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::OPTS, 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_string_column_size, #identifier_input_method, #identifier_output_method, #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
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 included from Database::ResetIdentifierMangling
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, #each_server, #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, #log_yield, #logger=, #prepared_statement, #quote_identifier, #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, #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?
Methods included from Metaprogramming
Constructor Details
This class inherits a constructor from Sequel::Database
Instance Attribute Details
#conversion_procs ⇒ Object (readonly)
Hash of conversion procs for this database.
24 25 26 |
# File 'lib/sequel/adapters/oracle.rb', line 24 def conversion_procs @conversion_procs end |
Instance Method Details
#connect(server) ⇒ Object
26 27 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 26 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
60 61 62 63 64 |
# File 'lib/sequel/adapters/oracle.rb', line 60 def disconnect_connection(c) c.logoff rescue OCIException nil end |
#execute(sql, opts = OPTS, &block) ⇒ Object
66 67 68 |
# File 'lib/sequel/adapters/oracle.rb', line 66 def execute(sql, opts=OPTS, &block) _execute(nil, sql, opts, &block) end |
#execute_insert(sql, opts = OPTS) ⇒ Object
70 71 72 |
# File 'lib/sequel/adapters/oracle.rb', line 70 def execute_insert(sql, opts=OPTS) _execute(:insert, sql, opts) end |