PLSQL集合 - 如何使用记录表?

时间:2009-11-10 22:18:10

标签: oracle collections plsql

我是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"

1 个答案:

答案 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()以确保表中有足够的条目来保存您的值。这现在正常运行。