【发布时间】:2011-04-20 15:37:26
【问题描述】:
我有这个程序:
PROCEDURE P_LOAD_EXPIRED_ACCOUNT
(
pDayDiff IN NUMBER,
ExpiredCur OUT MEGAGREEN_CUR
)
IS
BEGIN
OPEN ExpiredCur FOR
SELECT
ACCOUNT_NAME, SERVICE_TYPE,
CASE
WHEN SERVICE_TYPE = 1 THEN ADD_MONTHS(ACTIVATED_DATE,3)
WHEN SERVICE_TYPE = 2 THEN ADD_MONTHS(ACTIVATED_DATE,6)
WHEN SERVICE_TYPE = 3 THEN ADD_MONTHS(ACTIVATED_DATE,12)
END
AS EXPIRED_DATE
FROM SUBSCRIBERS
WHERE (EXPIRED_DATE - CURRENT_DATE) < pDayDiff;
END;
但是 SQL Developer 产生了这个错误:
错误(20,10):PL/SQL:ORA-00904:“EXPIRED_DATE”:标识符无效
我相信 PLSQL 允许我在 Where 子句中使用别名,但有什么我忘记了吗?
提前致谢。
【问题讨论】:
标签: sql oracle stored-procedures plsql ora-00904