【发布时间】:2019-03-20 07:52:34
【问题描述】:
以下是我创建表对象的代码:
TYPE TempObjectsTable IS TABLE OF t_temp_objects%ROWTYPE
INDEX BY BINARY_INTEGER;
nt_scb_temp_objects TempObjectsTable;
t_temp_objects 定义了以下列:
Name Null? Type
-------------- ----- -------------
INVC_REF NUMBER
ORDERS NUMBER
ORDER_POS_TYPE NUMBER
RULE_CONDITION VARCHAR2(500)
CHARGE NUMBER
CURRENCY VARCHAR2(10)
TXN_DT DATE
现在,我有一个光标,它返回一个订单列表,基本上是数字。
CURSOR c_orders_frm_grp IS
select a.ordr_id from sa_order a
WHERE a.invc_ref is NULL
我正在尝试使用批量收集将这些添加到上面创建的nt_scb_temp_objects 的 plsql 表中。但我现在希望nt_scb_temp_objects 的其余列填充为null,因为我将在接下来的步骤中填充这些列。
目前这是我正在尝试的。
IF c_orders_frm_grp %ISOPEN THEN
CLOSE c_orders_frm_grp ;
END IF;
OPEN c_orders_frm_grp;
FETCH c_orders_frm_grp BULK COLLECT INTO nt_scb_temp_objects.orders;
CLOSE c_orders_frm_grp;
这是我得到的错误:Error(44,74): PLS-00302: component 'ORDERS' must be declared
【问题讨论】: