DELETE 方法刪除集合中的條目。您可以通過三種不同的方式調用 DELETE 方法。
使用 DELETE 方法的第一種形式刪除集合中的所有條目:
collection.DELETE
使用 DELETE 方法的第二種形式從集合中刪除指定的條目:
collection.DELETE(subscript)
使用 DELETE 方法的第三種形式從集合中刪除 first_subscript 和 last_subscript 指定的范圍內的條目(包括 first_subscript 和 last_subscript 條目)。
collection.DELETE(first_subscript, last_subscript)
如果 first_subscript 和 last_subscript 引用不存在的元素,則刪除指定下標之間的元素。如果 first_subscript 大于 last_subscript,或者您為其中一個參數指定 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 個元素。
文檔內容是否對您有幫助?