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