Dado isto:
DECLARE
TYPE T_ARRAY IS TABLE OF VARCHAR2(2000) INDEX BY BINARY_INTEGER;
MY_ARRAY T_ARRAY;
V_COUNT INTEGER;
Eu gostaria de fazer:
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;
Existe algo melhor do que criar um procedimento que faça um loop básico incrementando um contador? Talvez uma função nativa PL / SQL já faça isso COUNT_ELEMENTS()
?
No caso de uma tabela aninhada (ou seja, sem
INDEX BY BINARY_INTEGER
), você também pode usar CARDINALITYDiferença importante: No caso de Nested-Table que é NULL,
COUNT
gera uma exceção eCARDINALITY
retorna NULL.fonte
fonte
Um método básico é:
fonte