我是PL / SQL的新手,我正在尝试使用记录表,但我不知道如何使用此功能。有什么问题?
DECLARE
TYPE TIP
IS
RECORD
(
F1 SMALLINT,
F2 SMALLINT);
TYPE Ve
IS
TABLE OF TIP;
v ve;
IND SMALLINT := 0;
BEGIN
WHILE(IND<20)
LOOP
IND := IND + 1;
V(IND).F2 := IND-1;
V(IND).F2 := IND;
END LOOP;
END;
我做错了什么?
06531. 00000 - "Reference to uninitialized collection"
答案 0 :(得分:4)
您需要进行两项更改。
v ve := ve();
初始化V数组。这将创建一个空的VE表。
IND := IND + 1;
v.extend(IND+1);
V(IND).F2 := IND-1;
V(IND).F2 := IND;
接下来是调用v.EXTEND()以确保表中有足够的条目来保存您的值。这现在正常运行。