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 操作後にネストされたテーブル変数を出力します。