Non è necessario utilizzare un array associativo:una raccolta funzionerà.
DECLARE
TYPE RecType IS RECORD
(
value1 NUMBER,
value2 NUMBER,
value3 NUMBER
);
TYPE TblType IS TABLE OF RecType;
TYPE TblOfTblType IS TABLE OF TblType;
matrix TblOfTblType := TblOfTblType();
BEGIN
matrix.EXTEND(3);
FOR i IN 1 .. matrix.COUNT LOOP
matrix(i) := TblType();
matrix(i).EXTEND(4);
FOR j IN 1 .. matrix(i).COUNT LOOP
matrix(i)(j).value1 := i;
matrix(i)(j).value2 := j;
matrix(i)(j).value3 := DBMS_RANDOM.VALUE;
END LOOP;
END LOOP;
FOR i IN 1 .. matrix.COUNT LOOP
FOR j IN 1 .. matrix(i).COUNT LOOP
DBMS_OUTPUT.PUT( '[' || matrix(i)(j).value1
|| ',' || matrix(i)(j).value2
|| ',' || matrix(i)(j).value3 || ']' || CHR(11) );
END LOOP;
DBMS_OUTPUT.NEW_LINE;
END LOOP;
END;
/