返回集合中元素的个数,不计算被DELETE的元素
l
可变数组的COUNT
COUNT始终等于LAST,如果使用EXTEND或TRIM增加或减小可变数组,则COUNT也
随之改变。
CREATE OR REPLACE PROCEDURE P_5_23 AS
TYPE NumList IS VARRAY(10) OF INTEGER;
n NumList := NumList(1,3,5,7);
BEGIN
DBMS_OUTPUT.PUT('n.COUNT = ' || n.COUNT || ', ');
DBMS_OUTPUT.PUT_LINE('n.LAST = ' || n.LAST);
n.EXTEND(3);
DBMS_OUTPUT.PUT('n.COUNT = ' || n.COUNT || ', ');
DBMS_OUTPUT.PUT_LINE('n.LAST = ' || n.LAST);
n.TRIM(5);
DBMS_OUTPUT.PUT('n.COUNT = ' || n.COUNT || ', ');
DBMS_OUTPUT.PUT_LINE('n.LAST = ' || n.LAST);
END;
--Result:
--n.COUNT = 4, n.LAST = 4
--n.COUNT = 7, n.LAST = 7
--n.COUNT = 2, n.LAST = 2
l
内嵌表的COUNT
嵌套表的COUNT=LAST.除了当在嵌套表中DELETE元素,此时COUNT
TYPE NumList IS TABLE OF INTEGER;
n NumList := NumList(1,3,5,7);
BEGIN
DBMS_OUTPUT.PUT('n.COUNT = ' || n.COUNT || ', ');
GBase 8s PL/SQL手册
南大通用数据技术股份有限公司
- 82 -
DBMS_OUTPUT.PUT_LINE('n.LAST = ' || n.LAST);
n.DELETE(3); -- Delete third element
DBMS_OUTPUT.PUT('n.COUNT = ' || n.COUNT || ', ');
DBMS_OUTPUT.PUT_LINE('n.LAST = ' || n.LAST);
n.EXTEND(2); -- Add two null elements to end
DBMS_OUTPUT.PUT('n.COUNT = ' || n.COUNT || ', ');
DBMS_OUTPUT.PUT_LINE('n.LAST = ' || n.LAST);
FOR i IN 1..8 LOOP
IF n.EXISTS(i) THEN
IF n(i) IS NOT NULL THEN
DBMS_OUTPUT.PUT_LINE('n(' || i || ') = ' || n(i));
ELSE
DBMS_OUTPUT.PUT_LINE('n(' || i || ') = NULL');
END IF;
ELSE
DBMS_OUTPUT.PUT_LINE('n(' || i || ') does not exist');
END IF;
END LOOP;
END;
--Result:
--n.COUNT = 4, n.LAST = 4
--n.COUNT = 3, n.LAST = 4
--n.COUNT = 5, n.LAST = 6
--n(1) = 1
--n(2) = 3
--n(3) does not exist
--n(4) = 7
--n(5) = NULL
--n(6) = NULL
--n(7) does not exist
--n(8) does not exist