2009-11-10 4 views
2

필자는 PL/SQL을 처음 사용하고 있으며 레코드 테이블을 사용하려고하지만이 기능을 사용하는 방법을 모르겠습니다. 문제가 무엇입니까?PLSQL Collections - 레코드 테이블을 사용하는 방법?

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()를 호출하여 테이블에 값을 저장할 수있는 충분한 항목이 있는지 확인하는 것입니다. 이제 올바르게 작동합니다.

관련 문제