2014-02-19 3 views
0
DECLARE 
    TYPE type_pledge IS TABLE OF DD_PLEDGE%rowtype 
    index by binary_integer; 
    pledge_tab type_pledge; 
    paystring varchar2(500); 
BEGIN 
    SELECT * BULK COLLECT 
    INTO pledge_tab 
    FROM DD_PLEDGE 
    WHERE PLEDGEDATE >= '1-October-2012' AND PLEDGEDATE <= '31-October-2012'; 

    --Loop it 
    FOR i in pledge_tab.first .. pledge_tab.last 
    LOOP 
    IF pledge_tab.paymonths = 0 THEN 
     paystring := 'Lump Sum'; 
    ELSE 
     paystring := 'Monthly Payments'; 
    END IF; 
    END LOOP; 
END; 

문제 나는 오류가 발생하지 않고 DD_PLEDGE 테이블의 데이터를 포함하는 테이블 변수 내에서 'paymonths'변수를 참조 할 수없는 것 같습니다.구성 요소를 선언해야합니다

ORA-06550: line 15, column 19: 
PLS-00302: component 'PAYMONTHS' must be declared 

어떻게 해결할 수 있습니까? 수 시간의 검색에도 불구하고 적절하게 참조하는 방법을 알 수 없습니다.

답변

1

pledge_tab 행에 정의 된 값이 있으므로 pledge_tab(i).paymonths 과 같이 아래 첨자를 사용하십시오.

--Loop it 
    FOR i in pledge_tab.first .. pledge_tab.last 
    LOOP 
    IF pledge_tab(i).paymonths = 0 THEN 
     paystring := 'Lump Sum'; 
    ELSE 
     paystring := 'Monthly Payments'; 
    END IF; 
    END LOOP; 
+0

허, 나는 그 블록을 내 블록에서 잘라 냈다. 다시 채우고 지금은 작동한다. 감사. 아마도 내가 포맷하는 방법에 대한 오류 일뿐입니다. – Orpheus

관련 문제