【问题标题】:oracle function error pls-00103oracle函数错误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; 

有人可以帮助我吗?这太令人沮丧了。

【问题讨论】:

    标签: oracle plsql syntax-error


    【解决方案1】:

    您可以尝试使用 END LOOP 代替 EXIT LOOP 吗?基本上你使用LOOPEND LOOP 来打开/关闭你的循环结构;你可以在里面使用EXIT WHEN

    【讨论】:

    • 成功了!非常感谢朋友!你知道这种行为的原因是什么吗?我的包中还有一个不带参数的存储过程,我得到了同样的错误。
    • 这是因为END LOOP 是您终止以LOOP 开头的块的方式。 EXIT(没有循环)是您如何强制退出您所在的循环。分享和享受。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多