DELETE¶
</ div>
DELETEメソッドは、コレクションからエントリを削除します。
DELETEメソッドは、3つの異なる方法で呼び出すことができます。
DELETEメソッドの最初のフォームを使用して、コレクションからすべてのエントリを削除します。
<collection>.DELETE
DELETEメソッドの2番目のフォームを使用して、指定したエントリーをコレクションから削除します。
<collection>.DELETE(<subscript>)
DELETEメソッドの3番目のフォームを使用して、first_subscriptとlast_subscriptで指定されたレンジ内のエントリ(first_subscriptとlast_subscriptのエントリを含む)をコレクションから削除します。
<collection>.DELETE(<first_subscript>, <last_subscript>)
first_subscriptおよびlast_subscriptが存在しない要素を参照する場合、指定された添え字の間のレンジにある要素は削除されます。
first_subscriptがlast_subscriptより大きい、または引数の1つにNULLの値を指定した場合、DELETEは効果がありません。
エントリーを削除すると、コレクションに添字が残ることに注意してください。代替エントリーで添字を再利用できます。
DELETEメソッドの呼び出しに存在しない添字を指定した場合、DELETEは例外を発生させません。
次の例は、DELETEメソッドを使用して、添字0を持つ要素をコレクションから削除する方法を示しています。
DECLARE
* TYPE sparse_arr_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
* sparse_arr sparse_arr_typ;
* v_results VARCHAR2(50);
* v_sub NUMBER;
BEGIN
* sparse_arr(-100) := -100;
* sparse_arr(-10) := -10;
* sparse_arr(0) := 0;
* sparse_arr(10) := 10;
* sparse_arr(100) := 100;
* DBMS_OUTPUT.PUT_LINE('COUNT: ' || sparse_arr.COUNT);
* sparse_arr.DELETE(0);
* DBMS_OUTPUT.PUT_LINE('COUNT: ' || sparse_arr.COUNT);
* v_sub := sparse_arr.FIRST;
* WHILE v_sub IS NOT NULL LOOP
* IF sparse_arr(v_sub) IS NULL THEN
* v_results := v_results || 'NULL ';
* ELSE
* v_results := v_results || sparse_arr(v_sub) || ' ';
* END IF;
* v_sub := sparse_arr.NEXT(v_sub);
* END LOOP;
* DBMS_OUTPUT.PUT_LINE('Results: ' || v_results);
END;
COUNT: 5
COUNT: 4
Results: -100 -10 10 100
COUNTは、DELETEメソッドの前に、コレクションに5要素があったことを示します。
DELETEメソッドが呼び出された後、コレクションには4要素が含まれます。