可変長配列の要素数は、ゼロから宣言された最大長までの範囲です。
構文
TYPE type_name IS VARRAY '(' number ')' OFデータ型 [NULL | NOT NULL] ';'例
可変長配列の次の例を参照してください。
DECLARE
TYPE varray_type IS VARRAY(10) OF INT; − 可変長配列のローカル型を宣言する。
v varray_type := varray_type(); -- 変数を作成する。 初期値は空の値です。
BEGIN
v.extend(1); -- 配列のサイズを拡大し、インデックス値が1である位置に値を割り当てるか、またはそこから値を取得することを可能にする。
v(1) := 1; − 値を割り当てる。
RAISE NOTICE '%', v(1); − 値を得る。
エンド; サンプル結果:
通知: 1
行う この構文では、作成する型の名前、可変長配列の最大長、および要素の型を指定します。 この型を使用して変数を作成できます。 可変長配列を作成するための次のサンプルコードを参照してください。
DECLARE
TYPE varray_type IS VARRAY(10) OF INT; − 可変長配列のローカル型を宣言する。
v varray_type; -- 変数を作成しますが、初期化しません。 ステータスはNULLです。
v varray_type := varray_type(); -- 変数を作成する。 初期値は空の値です。 実際の長さは0である。
v varray_type := varray_type (1,2); -- 変数を作成し、それを2つの要素で初期化する。 実際の長さは2である。
開始
エンド; 初期化中に、またはextendメソッドを使用して配列の位置を割り当て、その位置に値を割り当てたり、その位置から値を取得したりできます。 可変長配列の最小インデックス値は1であり、可変長配列の最大インデックス値は、配列に格納される要素の数である。 格納された要素の数は、指定された最大長を超えることはできません。 最大長よりも多くのポジションを割り当てると、PL/SQLは次のエラーを返します。
DECLARE
TYPE varray_typeはINTのVARRAY (10) です。
v varray_type := varray_type();
開始
v.extend(11); − 11の位置を割り当てる。
エンド; サンプル結果:
エラー: 新しいvarrayサイズ: 11は制限サイズより小さくなければなりません: 10
コンテキスト: SQL文「CALL v.extend(11) 」
PL/SQL関数inline_code_block 5行目CALL 要素には、intやvarcharなどの一般型、またはレコード型を指定できます。
DECLARE
TYPE record_type IS RECORD(id INT, name VARCHAR(10));
TYPE varray_type IS VARRAY(10) OF record_type;
v varray_type := varray_type();
開始
v.extend(1);
v(1).id := 1;
v(1).name := 'a';
RAISE NOTICE '% %', v(1).id, v(1).name;
エンド; サンプル結果:
通知: 1 a
行う