我在存储过程里面是这样定义的
CREATE OR REPLACE Package Point_Center Is 里面Type Rec_Coitem Is Record(
Itemspecid Bss_Sys.Item_Spec.Item_Spec_Id%Type,
Itemspecvalue Varchar2(250),
Action Varchar2(3));
Type Tab_Coitems Is Table Of Rec_Coitem;Type Rec_Custorder Is Record(
Coitemslist Tab_Coitems,
Ordertypelist Tab_Ordertypes,
Fbobjlist Tab_Fbobjs,
Cust Rec_Cust,
Mailing Rec_Mailing,
Relalist Tab_Corelas,
Ordercommoninfo Rec_Ordercommoninfo,
Fcoid Fb_Cust_Order.Fco_Id%Type,
Fconbr Fb_Cust_Order.Fco_Nbr%Type,
Fcoseq Fb_Cust_Order.Fco_Seq%Type,
Res Fb_Cust_Order.Res%Type,
Inchargenbr Fb_Cust_Order.Fco_Nbr%Type,
Exchangeinfos Tab_Exchangeinfos); Type Tab_Custorders Is Table Of Rec_Custorder;CREATE OR REPLACE Package Body Point_Center Is 里面 Custorders Tab_Custorders := Tab_Custorders();
Custorders.Trim(Custorders.Count);
Custorders.Extend; Custorders(i + 1) .Coitemslist.Extend;--当我调试走到这时就进异常,ORA-06531: 引用未初始化的收集。
相同的,如果注释上面的,走到下面这个也是进异常,报的是一样的ORA-06531
Custorders(i + 1) .Ordertypelist.Extend; 知道的大哥叫我怎么初始化!我在网上查了很多资料都没解决。
CREATE OR REPLACE Package Point_Center Is 里面Type Rec_Coitem Is Record(
Itemspecid Bss_Sys.Item_Spec.Item_Spec_Id%Type,
Itemspecvalue Varchar2(250),
Action Varchar2(3));
Type Tab_Coitems Is Table Of Rec_Coitem;Type Rec_Custorder Is Record(
Coitemslist Tab_Coitems,
Ordertypelist Tab_Ordertypes,
Fbobjlist Tab_Fbobjs,
Cust Rec_Cust,
Mailing Rec_Mailing,
Relalist Tab_Corelas,
Ordercommoninfo Rec_Ordercommoninfo,
Fcoid Fb_Cust_Order.Fco_Id%Type,
Fconbr Fb_Cust_Order.Fco_Nbr%Type,
Fcoseq Fb_Cust_Order.Fco_Seq%Type,
Res Fb_Cust_Order.Res%Type,
Inchargenbr Fb_Cust_Order.Fco_Nbr%Type,
Exchangeinfos Tab_Exchangeinfos); Type Tab_Custorders Is Table Of Rec_Custorder;CREATE OR REPLACE Package Body Point_Center Is 里面 Custorders Tab_Custorders := Tab_Custorders();
Custorders.Trim(Custorders.Count);
Custorders.Extend; Custorders(i + 1) .Coitemslist.Extend;--当我调试走到这时就进异常,ORA-06531: 引用未初始化的收集。
相同的,如果注释上面的,走到下面这个也是进异常,报的是一样的ORA-06531
Custorders(i + 1) .Ordertypelist.Extend; 知道的大哥叫我怎么初始化!我在网上查了很多资料都没解决。
Custorders Tab_Custorders := Tab_Custorders();
这个就是啊
Custorders.Extend;--Extend?
这两个又是什么呢?
Coitemslist这个变量应该是Tab_Coitems 类型,我没有看到它被初始化LZ是嵌套表里面有嵌套表?
主要是Custorders里面的Coitemslist异常
Coitemslist Tab_Coitems,--我把这里改为Coitemslist Tab_Coitems:=Tab_Coitems()
还是进异常下面是定义的Tab_Coitems
Type Rec_Coitem Is Record(
Itemspecid Bss_Sys.Item_Spec.Item_Spec_Id%Type,
Itemspecvalue Varchar2(250),
Action Varchar2(3));
Type Tab_Coitems Is Table Of Rec_Coitem;
试一下不知能否可以
如:Type Tab_Coitems Is Table Of Rec_Coitem INDEX BY BINARY_INTEGER;
然后去掉初始化的代码,和extend相关的代码,直接赋值,然后访问它