two_array_type 中的每一个元素都是 one_array_type 类型,而你用字符型来插入,是不行的

解决方案 »

  1.   


    感谢您的回复!
    但是若将数组定义改为:
     type one_array_type is table of  number index by binary_integer;
       type two_array_type is table of one_array_type index by binary_integer;
    再声明变量: two_array test_package.two_array_type;
    然后向 two_array赋数值型的值(如:two_array(1)(1):=3)这样没有问题,这又是为什么?
    还有想达到向二维数组赋字符型值的目的,有什么方法?
    恳请不吝赐教!再次感谢!
      

  2.   

    two_array(1)(1):=3 这个写法是对的,two_array的第一个元素里的第一个子元素,类型为Number,赋值为3
    而你如果用two_array(1):=3 就会出现类型不一致的错误
    可以用上面的方法来赋值
      

  3.   


    但是我用类似的方法向字符型(varchar2)二维数组赋值时,
    在声明two_array之后,向two_array(1)(1):='abcdef'这样赋值,没有赋值成功,
    用dbms_output.put_line('two_array(1)(1)的值为:'||two_array(1)(1))输出时,输出的值为空,即没有赋值成功。
    所以感觉很奇怪,也没找出是什么原因