Class: OCI8::Metadata::List

Inherits:
Base
  • Object
show all
Defined in:
lib/oci8/metadata.rb

Overview

internal use only.

Instance Method Summary collapse

Methods inherited from Base

#inspect, #obj_id, #obj_name, #obj_schema

Instance Method Details

#ltypeObject



1707
1708
1709
# File 'lib/oci8/metadata.rb', line 1707

def ltype
  raise "This feature is unavailable on Oracle 8.0"
end

#to_aObject

convert to array



1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
# File 'lib/oci8/metadata.rb', line 1717

def to_a
  # Table 6-15 List Attributes
  case ltype
  when OCI_LTYPE_COLUMN;        offset = 1
  when OCI_LTYPE_ARG_PROC;      offset = 1
  when OCI_LTYPE_ARG_FUNC;      offset = 0
  when OCI_LTYPE_SUBPRG;        offset = 0
  when OCI_LTYPE_TYPE_ATTR;     offset = 1
  when OCI_LTYPE_TYPE_METHOD;   offset = 1
  when OCI_LTYPE_TYPE_ARG_PROC; offset = 0
  when OCI_LTYPE_TYPE_ARG_FUNC; offset = 1
  when OCI_LTYPE_SCH_OBJ;       offset = 0
  when OCI_LTYPE_DB_SCH;        offset = 0
  #when OCI_LTYPE_TYPE_SUBTYPE;  offset = ?
  #when OCI_LTYPE_TABLE_ALIAS;   offset = ?
  #when OCI_LTYPE_VARIABLE_TYPE; offset = ?
  #when OCI_LTYPE_NAME_VALUE;    offset = ?
  else
    raise NotImplementedError, "unsupported list type #{list.ltype}"
  end
  ary = []
  0.upto(num_params - 1) do |i|
    ary << __param_at(i + offset)
  end
  ary
end