Collections¶
コレクション は、同じデータ型の順序付けられたデータ項目のセットです。一般的に、データ項目はスカラーフィールドですが、ユーザー定義型の各フィールドを構成する構造とデータ型が同じである限り、レコード型やオブジェクト型などのユーザー定義型でもかまいませんセット内の各要素に対して。セット内の特定の各データ項目は、括弧のペア内で添え字表記を使用して参照されます。
注釈
マルチレベルコレクション(つまり、コレクションのデータ項目が別のコレクションである場合)はサポートされていません。
最も一般的に知られているコレクションのタイプは配列です。AdvancedServerでは、サポートされるコレクションタイプは、連想配列*(以前はOracleでは*index-by-tables*と呼ばれていました)、*nestedtables、および*varrays* です。
コレクションを使用するための一般的な手順は次のとおりです。
目的のタイプのコレクションを定義する必要があります。これは、SPLプログラムの宣言セクションで実行できます。これにより、そのプログラム内でのみアクセス可能な*ローカルタイプ*が作成されます。ネストした表およびVARRAY型の場合、これは
CREATE TYPEコマンドを使用して行うこともできます。このコマンドは、データベース内の任意のSPLプログラムで参照できる永続的な*スタンドアロン型* を作成します。コレクション型の変数が宣言されています。変数宣言の一部として値の割り当てが行われていない場合、宣言された変数に関連付けられたコレクションは、この時点で*未初期化* と呼ばれます。
ネストした表およびVARRAYの初期化されていないコレクションはNULLです。nullコレクション はまだ存在しません。通常、nullコレクションでコレクションメソッドが呼び出されると、
COLLECTION_IS_NULL例外がスローされます。連想配列の初期化されていないコレクションは存在しますが、要素はありません。要素のない既存のコレクションは、空のコレクション と呼ばれます。
nullコレクションを初期化するには、空のコレクションにするか、null以外の値を割り当てる必要があります。一般に、nullコレクションはその*constructor* を使用して初期化されます。
空の連想配列に要素を追加するには、キーに値を割り当てるだけです。ネストした表およびVARRAYの場合、通常、コンストラクタを使用して、ネストした表またはVARRAYに初期値を割り当てます。ネストした表およびVARRAYの場合、
EXTENDメソッドを使用して、コンストラクタによって設定された初期サイズを超えてコレクションを拡大します。
各コレクションタイプの特定のプロセスについては、次のセクションで説明します。