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_name, #obj_schema

Instance Method Details

#ltypeObject



1624
1625
1626
# File 'lib/oci8/metadata.rb', line 1624

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

#to_aObject

convert to array



1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
# File 'lib/oci8/metadata.rb', line 1634

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