class ActiveRecord::ConnectionAdapters::OracleEnhanced::OCIConnection::Cursor

Public Class Methods

new(connection, raw_cursor) click to toggle source
# File lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb, line 109
def initialize(connection, raw_cursor)
  @connection = connection
  @raw_cursor = raw_cursor
end

Public Instance Methods

bind_param(position, value) click to toggle source
# File lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb, line 126
def bind_param(position, value)
  case value
  when Type::OracleEnhanced::Raw
    @raw_cursor.bind_param(position, OracleEnhanced::Quoting.encode_raw(value))
  when ActiveModel::Type::Decimal
    @raw_cursor.bind_param(position, BigDecimal(value.to_s))
  when Type::OracleEnhanced::CharacterString::Data
    @raw_cursor.bind_param(position, value.to_character_str)
  when NilClass
    @raw_cursor.bind_param(position, nil, String)
  else
    @raw_cursor.bind_param(position, value)
  end
end
bind_params(*bind_vars) click to toggle source
# File lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb, line 114
def bind_params(*bind_vars)
  index = 1
  bind_vars.flatten.each do |var|
    if Hash === var
      var.each { |key, val| bind_param key, val }
    else
      bind_param index, var
      index += 1
    end
  end
end
bind_returning_param(position, bind_type) click to toggle source
# File lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb, line 141
def bind_returning_param(position, bind_type)
  @raw_cursor.bind_param(position, nil, bind_type)
end
close() click to toggle source
# File lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb, line 181
def close
  @raw_cursor.close
end
exec() click to toggle source
# File lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb, line 145
def exec
  @raw_cursor.exec
end
exec_update() click to toggle source
# File lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb, line 149
def exec_update
  @raw_cursor.exec
end
fetch(options = {}) click to toggle source
# File lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb, line 157
def fetch(options = {})
  if row = @raw_cursor.fetch
    get_lob_value = options[:get_lob_value]
    col_index = 0
    row.map do |col|
      col_value = @connection.typecast_result_value(col, get_lob_value)
      col_metadata = @raw_cursor.column_metadata.fetch(col_index)
      if !col_metadata.nil?
        key = col_metadata.data_type
        case key.to_s.downcase
        when "char"
          col_value = col.to_s.rstrip
        end
      end
      col_index = col_index + 1
      col_value
    end
  end
end
get_col_names() click to toggle source
# File lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb, line 153
def get_col_names
  @raw_cursor.get_col_names
end
get_returning_param(position, type) click to toggle source
# File lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb, line 177
def get_returning_param(position, type)
  @raw_cursor[position]
end