EXTENDは、可変配列またはネストテーブルの末尾に要素を追加するために使用されます。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
コレクションは空にすることができますが、NULLにすることはできません。コンストラクターを使用して、コレクションを空にしたり、NULLコレクションに要素を追加したりできます。詳細については、コレクションコンストラクタを参照してください。
EXTENDメソッドの使用方法は次のとおりです:
EXTENDは、コレクションにNULL要素を追加します。EXTEND(n)は、コレクションにn個のNULL要素を追加します。EXTEND(n, i)は、コレクションにi番目の要素のn個のコピーを追加します。説明
EXTEND(n, i)は、要素にNOT NULL制約がある場合にのみ使用できます。
EXTENDは、コレクションの内部サイズに基づいて操作を実行します。つまり、DELETEが要素を削除してもその代わりにプレースホルダーを保持している場合、EXTENDはその要素が存在すると見なします。
例:
obclient> DECLARE
t nested_type:= nested_type('A', 'B', 'C');
BEGIN
print_t(t);
t.EXTEND(2,1); -- コレクションに最初の要素の2つのコピーを追加
print_t(t);
t.DELETE(4); -- 4番目の要素を削除
print_t(t);
t.EXTEND; -- コレクションにNULL要素を追加
print_t(t);
END;
/
Query OK, 0 rows affected
t.(1) = A
t.(2) = B
t.(3) = C
---
t.(1) = A
t.(2) = B
t.(3) = C
t.(4) = A
t.(5) = A
---
t.(1) = A
t.(2) = B
t.(3) = C
t.(5) = A
---
t.(1) = A
t.(2) = B
t.(3) = C
t.(5) = A
t.(6) = NULL
---
上記の例では、ネストテーブル変数を宣言し、3つの要素を初期化して代入しています。それぞれ以下の操作を実行しました:
コレクションに最初の要素の2つのコピーを追加します。
4番目の要素を削除します。
コレクションにNULL要素を追加します。
print_ntストアドプロシージャは、初期化後およびEXTENDとDELETE操作後にネストテーブル変数を出力します。