class OCI8::Metadata::Base

Abstract super class of Metadata classes.

def __anydata(idx); raise NotImplementedError; end

def __anydata(idx); raise NotImplementedError; end

def __boolean(idx)

def __boolean(idx)
  attr_get_ub1(idx) == 0 ? false : true
end

def __charset_form # :nodoc:

:nodoc:
def __charset_form # :nodoc:
  case attr_get_ub1(OCI_ATTR_CHARSET_FORM)
  when 1; :implicit # for CHAR, VARCHAR2, CLOB w/o a specified set
  when 2; :nchar    # for NCHAR, NCHAR VARYING, NCLOB
  when 3; :explicit # for CHAR, etc, with "CHARACTER SET ..." syntax
  when 4; :flexible # for PL/SQL "flexible" parameters
  when 5; :lit_null # for typecheck of NULL and empty_clob() lits
  end
end

def __data_type # :nodoc:

:nodoc:
def __data_type # :nodoc:
  return @data_type if defined? @data_type
  entry = DATA_TYPE_MAP[attr_get_ub2(OCI_ATTR_DATA_TYPE)]
  type = entry.nil? ? attr_get_ub2(OCI_ATTR_DATA_TYPE) : entry[0]
  type = type.call(self) if type.is_a? Proc
  @data_type = type
end

def __data_type_string # :nodoc:

:nodoc:
def __data_type_string # :nodoc:
  entry = DATA_TYPE_MAP[attr_get_ub2(OCI_ATTR_DATA_TYPE)]
  type = entry.nil? ? "unknown(#{attr_get_ub2(OCI_ATTR_DATA_TYPE)})" : entry[1]
  type = type.call(self) if type.is_a? Proc
  if respond_to?(:nullable?) && !nullable?
    type + " NOT NULL"
  else
    type
  end
end

def __duration # :nodoc:

:nodoc:
def __duration # :nodoc:
  case attr_get_ub2(OCI_ATTR_DURATION)
  when OCI_DURATION_SESSION
    :session
  when OCI_DURATION_TRANS
    :transaction
  when OCI_DURATION_NULL
    nil
  end
end

def __typecode(idx) # :nodoc:

:nodoc:
def __typecode(idx) # :nodoc:
  case attr_get_ub2(idx)
  when 110; :ref         # OCI_TYPECODE_REF
  when  12; :date        # OCI_TYPECODE_DATE
  when  27; :signed8     # OCI_TYPECODE_SIGNED8
  when  28; :signed16    # OCI_TYPECODE_SIGNED16
  when  29; :signed32    # OCI_TYPECODE_SIGNED32
  when  21; :real        # OCI_TYPECODE_REAL
  when  22; :double      # OCI_TYPECODE_DOUBLE
  when 100; :binary_float  # OCI_TYPECODE_BFLOAT
  when 101; :binary_double # OCI_TYPECODE_BDOUBLE
  when   4; :float       # OCI_TYPECODE_FLOAT
  when   2; :number      # OCI_TYPECODE_NUMBER
  when   7; :decimal     # OCI_TYPECODE_DECIMAL
  when  23; :unsigned8   # OCI_TYPECODE_UNSIGNED8
  when  25; :unsigned16  # OCI_TYPECODE_UNSIGNED16
  when  26; :unsigned32  # OCI_TYPECODE_UNSIGNED32
  when 245; :octet       # OCI_TYPECODE_OCTET
  when 246; :smallint    # OCI_TYPECODE_SMALLINT
  when   3; :integer     # OCI_TYPECODE_INTEGER
  when  95; :raw         # OCI_TYPECODE_RAW
  when  32; :ptr         # OCI_TYPECODE_PTR
  when   9; :varchar2    # OCI_TYPECODE_VARCHAR2
  when  96; :char        # OCI_TYPECODE_CHAR
  when   1; :varchar     # OCI_TYPECODE_VARCHAR
  when 105; :mlslabel    # OCI_TYPECODE_MLSLABEL
  when 247; :varray      # OCI_TYPECODE_VARRAY
  when 248; :table       # OCI_TYPECODE_TABLE
  when 108; :named_type  # OCI_TYPECODE_OBJECT
  when  58; :opaque      # OCI_TYPECODE_OPAQUE
  when 122; :named_collection # OCI_TYPECODE_NAMEDCOLLECTION
  when 113; :blob        # OCI_TYPECODE_BLOB
  when 114; :bfile       # OCI_TYPECODE_BFILE
  when 112; :clob        # OCI_TYPECODE_CLOB
  when 115; :cfile       # OCI_TYPECODE_CFILE
  when 185; :time        # OCI_TYPECODE_TIME
  when 186; :time_tz     # OCI_TYPECODE_TIME_TZ
  when 187; :timestamp   # OCI_TYPECODE_TIMESTAMP
  when 188; :timestamp_tz # OCI_TYPECODE_TIMESTAMP_TZ
  when 232; :timestamp_ltz # OCI_TYPECODE_TIMESTAMP_LTZ
  when 189; :interval_ym # OCI_TYPECODE_INTERVAL_YM
  when 190; :interval_ds # OCI_TYPECODE_INTERVAL_DS
  when 104; :urowid      # OCI_TYPECODE_UROWID
  #when 228; :otmfirst   # OCI_TYPECODE_OTMFIRST
  #when 320; :otmlast    # OCI_TYPECODE_OTMLAST
  #when 228; :sysfirst   # OCI_TYPECODE_SYSFIRST
  #when 235; :syslast    # OCI_TYPECODE_SYSLAST
  when 266; :pls_integer # OCI_TYPECODE_PLS_INTEGER
  when 250; :record      # OCI_TYPECODE_RECORD
  when 251; :itable      # OCI_TYPECODE_ITABLE
  when 252; :boolean     # OCI_TYPECODE_BOOLEAN
  end
end

def inspect

Other tags:
    Private: -
def inspect
  "#<#{self.class.name}:(#{obj_id}) #{obj_schema}.#{obj_name}>"
end

def num_params

Returns the number of parameters.
def num_params
  attr_get_ub2(OCI_ATTR_NUM_PARAMS)
end

def obj_id

Returns:
  • (Integer or nil) -
def obj_id
  attr_get_ub4(OCI_ATTR_OBJ_ID, false)
end

def obj_link

Other tags:
    Since: - 2.1.7

Returns:
  • (String or nil) - database link name
def obj_link
  @obj_link
end

def obj_name

Returns:
  • (String or nil) - object name
def obj_name
  attr_get_string(OCI_ATTR_OBJ_NAME, false)
end

def obj_schema

Returns:
  • (String or nil) - schema name
def obj_schema
  attr_get_string(OCI_ATTR_OBJ_SCHEMA, false)
end