statList是什么啊,是不是应该初始化 arrl?
好像数组定义一定要初始化的

解决方案 »

  1.   

    declare
    i NUMBER(2);
    TYPE tabcolArr IS VARRAY (8) OF varchar2(800);
    tabcolArray tabcolArr:=tabcolArr(0,0,0,0,0,0,0,0);
    Begin
    i:=0;
    While i<8 Loop
    tabcolArray(i) := a;
    i:=i+1;
    End Loop;
    End;没试过,可能有错
      

  2.   

    declare 
      type stat_array is varray(1000) of List; 
      arr1 stat_array:=stat_array(); 
    begin 
      arr1.extend(); 
        arr1(1) .Str1 := 'a'; 
        arr1(1) .Str2 := 'b'; 
       
    end; 
    /oracle数组下标由1开始
      

  3.   

    我记得:
    可以在声明数组时加上“Index by 整数数据类型” 这样就可以不用初始化,就可以用类似arrl(1),arrl(2)这样的方式来使用,如果不加上Index by ... ,就必须得初始化数组,当然也可以用字符或字符串的方式来表示,如:arrl('a'),arrl('b')