You can model a multidimensional collection with a collection whose elements are collections.
In the following code, my is a two-dimensional varray-a varray of varrays of integers.
SQL> SQL>-- from w w w . j a va2s . co m SQL> DECLARE 2 TYPE t1 IS VARRAY(10) OF INTEGER; -- varray of integer 3 va t1 := t1(2,3,5); 4 5 TYPE nt1 IS VARRAY(10) OF t1; -- varray of varray of integer 6 my nt1 := nt1(va, t1(55,6,73), t1(2,4), va); 7 8 i INTEGER; 9 va1 t1; 10 BEGIN 11 i := my(2)(3); 12 DBMS_OUTPUT.PUT_LINE('i = ' || i); 13 14 my.EXTEND; 15 my(5) := t1(56, 32); -- replace inner varray elements 16 my(4) := t1(45,43,67,43345); -- replace an inner integer element 17 my(4)(4) := 1; -- replace 43345 with 1 18 19 my(4).EXTEND; -- add element to 4th varray element 20 my(4)(5) := 89; -- store integer 89 there 21 END; 22 / i = 73 PL/SQL procedure successfully completed. SQL>