【问题标题】:PLSQL encountered the symbol "end-offile"... PLS-00103PL SQL 遇到符号“文件结尾”... PLS-00103
【发布时间】:2023-03-21 13:57:01
【问题描述】:

我对 PL SQL 还很陌生,当我尝试编写如下内容时:

BEGIN FOR foo IN (SELECT A, B, C FROM foo_table WHERE some_conditions) LOOP
DBMS_OUTPUT.PUT_LINE('sth here')
END LOOP;

在 SQL Developer 中执行语句时出现以下错误

当期望是以下之一时遇到符号“文件结尾”: 开始案例声明结束异常等等......

我的陈述有什么问题?谁能给我一个提示如何解决这个问题?我会很高兴所有提示。

【问题讨论】:

  • PL/SQL 使用分号 (;) 行尾...如果那是您的实际代码从那里开始:docs.oracle.com/cd/B19306_01/appdev.102/b14261/…
  • 哎呀,我在我的例子中忘记了它,在原始代码中它是 END LOOP;错误就像我在第一篇文章中写的那样。更新了,但是当分号已经放在我的代码中时我得到了错误。

标签: sql oracle plsql plsqldeveloper pls-00103


【解决方案1】:

除了缺少; 之外,还缺少end;。这段代码应该可以工作:

BEGIN FOR foo IN (SELECT A, B, C FROM foo_table WHERE some_conditions) LOOP
DBMS_OUTPUT.PUT_LINE('sth here');
END LOOP;
END;

【讨论】:

    【解决方案2】:

    您缺少 end 关键字来关闭 begin

    当你格式化你的代码时,这种事情往往会突然出现。

    begin
        for foo in (
            select a, b, c from foo_table where some_conditions
        )
        loop
            dbms_output.put_line('sth here');
        end loop;
    

    (编辑:不知何故我在发帖前错过了约翰的正确回复。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-12
      • 1970-01-01
      • 2018-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多