【发布时间】:2015-06-29 23:04:10
【问题描述】:
我无法弄清楚为什么在运行查询时会出现以下错误。完成了几乎所有可能的搜索,因为它与我的问题有关。据我所知,代码很好。有什么想法吗?
ORA-06550:第 17 行,第 42 列: PLS-00201:必须声明标识符“IDPLEDGE”
我的代码:
DECLARE
f_payflag VARCHAR2(25); --flag for test condition
CURSOR cur_pledges IS
SELECT idpledge, pledgeamt, paymonths, paydate, payamt, iddonor
FROM DD_PLEDGE JOIN DD_PAYMENT
USING (IDPLEDGE)
WHERE idpledge = 302
ORDER BY idpledge, paydate;
BEGIN
FOR rec_iddonor IN cur_pledges LOOP
IF cur_pledges%ROWCOUNT = 1
THEN
f_payflag :='First Payment';
ELSE
f_payflag := NULL;
END IF;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Pledge ID: ' || idpledge ||
' Pledge Amount: $' || pledgeamt ||
'Monthly Payment: $'|| paymonths ||
'Pay Date: ' || paydate ||
' Amount Paid: $' || payamt ||
' ' || f_payflag);
END;
【问题讨论】:
-
表
DD_PLEDGE和DD_PAYMENT中没有名为idpledge的列 -
@LucM:这太疯狂了。问题是对
DBMS_OUTPUT.PUT_LINE的调用中对idpledge的引用。这是 PL/SQL 无法解析的标识符。