存储过程中的内存表可以当做其他程序语言中的数组来使用。
删除某一元素后该元素位置仍然存在
将数组中所有元素都删除后,该数组成为空数组,而不是 null
DECLARE
TYPE NUMLIST IS TABLE OF NUMBER;
ARRAY_TEST NUMLIST := NUMLIST(1, 3, 5, 7);
BEGIN
--删除元素
ARRAY_TEST.DELETE(1);
ARRAY_TEST.DELETE(2);
ARRAY_TEST.DELETE(3);
ARRAY_TEST.DELETE(4);
--检查数组长度是否为 0
DBMS_OUTPUT.PUT_LINE('Length of ARRAY_TEST: ' || ARRAY_TEST.COUNT);
--检查数组是否为 null
IF ARRAY_TEST IS NULL THEN
DBMS_OUTPUT.PUT_LINE('ARRAY_TEST IS NULL.');
ELSE
DBMS_OUTPUT.PUT_LINE('ARRAY_TEST IS NOT NULL.');
END IF;
END;
输出结果:
Length of ARRAY_TEST: 0
ARRAY_TEST IS NOT NULL.