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

#obj_id, #obj_link, #obj_name, #obj_schema

Instance Method Details

#ltypeObject



1681
1682
1683
# File 'lib/oci8/metadata.rb', line 1681

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

#to_aObject

convert to array



1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
# File 'lib/oci8/metadata.rb', line 1691

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 = ?
  when 15; offset = 0 # OCI_LTYPE_PACKAGE_TYPE
  else
    raise NotImplementedError, "unsupported list type #{ltype}"
  end
  ary = []
  0.upto(num_params - 1) do |i|
    ary << __param_at(i + offset)
  end
  ary
end