Angesichts dessen:
DECLARE
TYPE T_ARRAY IS TABLE OF VARCHAR2(2000) INDEX BY BINARY_INTEGER;
MY_ARRAY T_ARRAY;
V_COUNT INTEGER;
Ich möchte zu tun:
BEGIN
-- ... some code filling the MY_ARRAY array
-- obviously COUNT_ELEMENTS() does not exists, this is what I'm looking for :-)
V_COUNT := COUNT_ELEMENTS(MY_ARRAY);
DBMS_OUTPUT.PUT_LINE('My array containts ' || V_COUNT || ' elements.');
END;
Gibt es etwas Besseres, als eine Prozedur zu erstellen, die eine einfache Schleife durchführt, die einen Zähler inkrementiert? Vielleicht macht das bereits eine native PL / SQL-Funktion COUNT_ELEMENTS()
?
Im Falle einer verschachtelten Tabelle (dh ohne
INDEX BY BINARY_INTEGER
) können Sie auch CARDINALITY verwendenWichtiger Unterschied: Im Fall einer NULL-geschachtelten Tabelle wird
COUNT
eine AusnahmeCARDINALITY
ausgelöst und NULL zurückgegeben.quelle
quelle
Eine grundlegende Methode ist:
quelle