TRIMは、可変配列またはネストテーブルの末尾から要素を削除するために使用されます。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
TRIMメソッドの使用方法は次のとおりです:
TRIMはコレクションの末尾から1つの要素を削除するため、コレクションには少なくとも1つの要素が含まれている必要があります。そうでない場合、事前定義された例外SUBSCRIPT_BEYOND_COUNTが発生します。TRIM(n)はコレクションの末尾からn個の要素を削除するため、コレクションには少なくともn個の要素が含まれている必要があります。そうでない場合、事前定義された例外SUBSCRIPT_BEYOND_COUNTが発生します。
TRIMはコレクションの内部サイズに基づいて操作を実行します。つまり、DELETEが要素を削除してもその代わりにプレースホルダーを残した場合、TRIMはその要素が依然として存在すると見なします。そのため、TRIMは削除された要素を削除できます。
PLは、トリミング後の要素にプレースホルダーを保持しません。そのため、トリミングされた要素はコレクションの内部サイズに含まれず、トリミングされた要素に有効な値を割り当てることで元に戻すことはできません。
注意
TRIMとDELETEの相互作用に依存しないでください。ネストテーブルを固定サイズの配列(DELETEのみ使用)またはスタック(TRIMとEXTENDのみ使用)として扱います。
例:
obclient> DECLARE
t nested_type:= nested_type('A', 'B', 'C', 'D', 'E', 'F');
BEGIN
print_t(t);
t.TRIM; -- 最後の要素をトリミング
print_t(t);
t.DELETE(3); -- 3番目の要素を削除
print_t(t);
t.TRIM(2); -- 最後の2つの要素をトリミング
print_t(t);
END;
/
Query OK, 0 rows affected
t.(1) = A
t.(2) = B
t.(3) = C
t.(4) = D
t.(5) = E
t.(6) = F
---
t.(1) = A
t.(2) = B
t.(3) = C
t.(4) = D
t.(5) = E
---
t.(1) = A
t.(2) = B
t.(4) = D
t.(5) = E
---
t.(1) = A
t.(2) = B
---
上記の例では、ネストテーブル変数を宣言し、6つの要素を初期化して代入しています。それぞれ次の操作を実行します:
最後の要素をトリミングします。
4番目の要素を削除します。
最後の2つの要素をトリミングします。
print_ntストアドプロシージャは、初期化後およびTRIMとDELETE操作後にネストテーブル変数を出力します。