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
我该如何解决这个问题?尽管经过了数小时的搜索,我仍无法弄清楚如何恰当地引用它。
答案 0 :(得分:1)
请使用pledge_tab(i).paymonths
之类的下标
由于只有pledge_tab
行已定义。
--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;