Module: DBI::DBD::OCI8::Util

Included in:
Database, Driver, Statement
Defined in:
lib/DBD/OCI8/OCI8.rb

Constant Summary collapse

ERROR_MAP =
{
  1 => DBI::IntegrityError, # unique constraint violated
  900 => DBI::ProgrammingError, # invalid SQL statement
  904 => DBI::ProgrammingError, # invalid identifier
  905 => DBI::ProgrammingError, # missing keyword
  923 => DBI::ProgrammingError, # FROM keyword not found where expected 
  936 => DBI::ProgrammingError, # missing expression
  942 => DBI::ProgrammingError, # table or view does not exist
  2290 => DBI::IntegrityError, # check constraint violated
  2291 => DBI::IntegrityError, # parent key not found
  2292 => DBI::IntegrityError, # child record found
  2293 => DBI::IntegrityError, # check constraint violated
}

Instance Method Summary collapse

Instance Method Details

#raise_dbierror(err) ⇒ Object

:nodoc:



63
64
65
66
67
68
69
70
71
72
73
# File 'lib/DBD/OCI8/OCI8.rb', line 63

def raise_dbierror(err) # :nodoc:
  if err.is_a? OCIError
    exc = ERROR_MAP[err.code] || DBI::DatabaseError
    raise exc.new(err.message, err.code)
  else
    raise DBI::DatabaseError.new(err.message, -1)
  end
rescue DBI::DatabaseError => exc
  exc.set_backtrace(err.backtrace)
  raise
end