declare
  type a1_varray_type is varray(10) of int;
  type a2_varray_type is varray(10) of a1_varray_type;
a2 a2_varray_type :=a2_varray_type(
  a1_varray_type(58,100,102),
  a1_varray_type(55,6,73),
  a1_varray_type(2,4));
请问下这个二维数组出来是
58 100 102
55 6   73 
2  4
还是
58 55 2
100 6 4
102 73
二维数组

解决方案 »

  1.   

    a2变量里有三个a1类型的元素,分别是{[58,100,102],[55,6,73],[2,4]}
    副一个我以前写过的二维数组,记得应该是11g文档里的例子,我就是把打印加上了
    declare
      --定义一维varray
      type al_varray_type is varray(10) of int;
      --定义二维varray
      type nal_varray_type is varray(10) of al_varray_type;
      --声明变量,并初始化
      v nal_varray_type := nal_varray_type(al_varray_type(11,22,33,44,55,66,77,88,99,0),
                                             al_varray_type(101,202,303,404,505,606,707,808,909,0),
                                             al_varray_type(111,212,313,414,515,616,717,818,919,10),
                                             al_varray_type(11,22,33,44,55,66,77,88,99,0),
                                             al_varray_type(11,22,33,44,55,66,77,88,99,0),
                                             al_varray_type(11,22,33,44,55,66,77,88,99,0),
                                             al_varray_type(11,22,33,44,55,66,77,88,99,0),
                                             al_varray_type(11,22,33,44,55,66,77,88,99,0),
                                             al_varray_type(11,22,33,44,55,66,77,88,99,0),
                                             al_varray_type(11,22,33,44,55,66,77,88,99,0));
    begin
      dbms_output.put_line('显示二维varray所有元素:');
      for i in 1..v.count loop
        for j in 1..v(i).count loop
          dbms_output.put_line('v('||i||','||j||')='||v(i)(j));
        end loop;
      end loop;
    end;
    /
    结果:
    显示二维varray所有元素:
    v(1,1)=11
    v(1,2)=22
    v(1,3)=33
    v(1,4)=44
    v(1,5)=55
    v(1,6)=66
    v(1,7)=77
    v(1,8)=88
    v(1,9)=99
    ……
    ……
    PL/SQL procedure successfully completed