Collections ORA-06531:对未初始化集合的引用

Collections ORA-06531:对未初始化集合的引用,collections,reference,initialization,Collections,Reference,Initialization,我得到“ORA-06531:Reference to uninitialized collection”,即使在初始化集合以分配值之后也是如此。你能帮忙吗。请在下面查找代码 create or replace TYPE TYP_GRP_ID is object (grp_id number); create or replace TYPE TAB_GROUP is table of TYP_GRP_ID; create or replace PACKAGE TEST AS

我得到“ORA-06531:Reference to uninitialized collection”,即使在初始化集合以分配值之后也是如此。你能帮忙吗。请在下面查找代码

    create or replace TYPE TYP_GRP_ID  is object (grp_id number);
    create or replace TYPE TAB_GROUP is table of TYP_GRP_ID;

create or replace PACKAGE TEST AS
  PROCEDURE TEST;
 END;

create or replace PACKAGE BODY TEST AS
  PROCEDURE TEST
    IS
     acc_arr           TAB_GROUP;
     BEGIN
         acc_arr.EXTEND;    
         acc_arr := new TAB_GROUP(null);
         acc_arr(acc_arr.LAST).grp_id := 1000;
         dbms_output.put_line(acc_arr(acc_arr.LAST).grp_id);
  END;
END;
提前谢谢


Mathew需要初始化acc\u arr,请参见下面的更新代码

create or replace PACKAGE BODY TEST AS
  PROCEDURE TEST
    IS
     acc_arr           TAB_GROUP  := TAB_GROUP();
     BEGIN
         acc_arr.EXTEND;    
         -- acc_arr := new TAB_GROUP(null);
         acc_arr(acc_arr.LAST).grp_id := 1000;
         dbms_output.put_line(acc_arr(acc_arr.LAST).grp_id);
  END;
END;


需要初始化acc_arr,请参阅下面的更新代码

create or replace PACKAGE BODY TEST AS
  PROCEDURE TEST
    IS
     acc_arr           TAB_GROUP  := TAB_GROUP();
     BEGIN
         acc_arr.EXTEND;    
         -- acc_arr := new TAB_GROUP(null);
         acc_arr(acc_arr.LAST).grp_id := 1000;
         dbms_output.put_line(acc_arr(acc_arr.LAST).grp_id);
  END;
END;