oracle函数错误pls-00103
Posted
技术标签:
【中文标题】oracle函数错误pls-00103【英文标题】:oracle function error pls-00103 【发布时间】:2014-06-02 16:24:24 【问题描述】:我在编译这个函数时收到以下错误:
错误(19,8):PLS-00103:遇到符号“;”当期待以下之一时:循环
CREATE OR replace FUNCTION EXP_NOW
RETURN NUMBER
IS
cprod NUMBER;
dexp DATE;
prodexp NUMBER := 0;
CURSOR prodsd IS
SELECT cod_prod,
dat_exp
FROM produse;
BEGIN
OPEN prodsd;
LOOP
FETCH prodsd INTO cprod, dexp;
EXIT WHEN prodsd%NOTFOUND;
IF ( dexp <= SYSDATE ) THEN
prodexp := cprod;
END IF;
EXIT LOOP;
CLOSE prodsd;
RETURN prodexp;
END;
有人可以帮助我吗?这太令人沮丧了。
【问题讨论】:
【参考方案1】:您可以尝试使用 END LOOP
代替 EXIT LOOP
吗?基本上你使用LOOP
和END LOOP
来打开/关闭你的循环结构;你可以在里面使用EXIT WHEN
。
【讨论】:
成功了!非常感谢朋友!你知道这种行为的原因是什么吗?我的包中还有一个不带参数的存储过程,我得到了同样的错误。 这是因为END LOOP
是您终止以LOOP
开头的块的方式。 EXIT
(没有循环)是您如何强制退出您所在的循环。分享和享受。以上是关于oracle函数错误pls-00103的主要内容,如果未能解决你的问题,请参考以下文章
oracle程序错误PLS-00103遇到符号“END”[关闭]
Oracle PL-SQL 函数出现错误 PLS-00103:在预期以下情况之一时遇到符号“SELECT”
PLS-00103 在 Oracle 游标中提供参数时 [重复]