Dado este:
DECLARE
TYPE T_ARRAY IS TABLE OF VARCHAR2(2000) INDEX BY BINARY_INTEGER;
MY_ARRAY T_ARRAY;
V_COUNT INTEGER;
Me gustaría hacer:
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;
¿Hay algo mejor que crear un procedimiento haciendo un ciclo básico que incremente un contador? ¿Quizás una función nativa PL / SQL ya hace esto COUNT_ELEMENTS()
?
En el caso de una tabla anidada (es decir, sin
INDEX BY BINARY_INTEGER
), también puede usar CARDINALITYDiferencia importante: en caso de Nested-Table que es NULL,
COUNT
genera una excepción,CARDINALITY
devuelve NULL.fuente
fuente
Un método básico es:
fuente