2009-11-10 109 views
2

我是新來的PL/SQL,我試圖使用記錄表,但我不知道如何使用此功能。問題是什麼?PLSQL集合 - 如何使用記錄表?

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" 

回答

4

您需要進行兩項更改。

v ve := ve(); 

這初始化V數組。這將創建一個空的VE表。

IND  := IND + 1; 
v.extend(IND+1); 
V(IND).F2 := IND-1; 
V(IND).F2 := IND; 

接下來調用v.EXTEND()以確保表中有足夠的條目來保存您的值。現在這個功能正常。