Biorąc to pod uwagę:
DECLARE
TYPE T_ARRAY IS TABLE OF VARCHAR2(2000) INDEX BY BINARY_INTEGER;
MY_ARRAY T_ARRAY;
V_COUNT INTEGER;
Chciałbym zrobić:
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;
Czy istnieje coś lepszego niż utworzenie procedury wykonującej podstawową pętlę zwiększającą licznik? Może natywna funkcja PL / SQL już to robi COUNT_ELEMENTS()
?
W przypadku tabeli zagnieżdżonej (tj. Bez
INDEX BY BINARY_INTEGER
) możesz również użyć KARDINALNOŚCIWażna różnica: w przypadku tabeli zagnieżdżonej, która ma wartość NULL,
COUNT
podnosi wyjątek,CARDINALITY
zwraca wartość NULL.źródło
źródło
Podstawową metodą jest:
źródło