PL SQL 遇到符号“文件结尾”... PLS-00103

Posted

技术标签:

【中文标题】PL SQL 遇到符号“文件结尾”... PLS-00103【英文标题】:PLSQL encountered the symbol "end-offile"... PLS-00103 【发布时间】:2012-02-15 22:09:03 【问题描述】:

我对 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;错误就像我在第一篇文章中写的那样。更新了,但是当分号已经放在我的代码中时我得到了错误。 【参考方案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;

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

【讨论】:

以上是关于PL SQL 遇到符号“文件结尾”... PLS-00103的主要内容,如果未能解决你的问题,请参考以下文章

PLS-00103:遇到符号“文件结尾”Sql Developer

PL/SQL 函数错误 - PLS-00103:遇到符号“IS”

在 PL/SQL 中编译包时出错。错误(7,1):PLS-00103:遇到符号“CREATE”

Pl SQL Oracle PLS-00103:遇到符号“CREATE”

Oracle PL-SQL 函数出现错误 PLS-00103:在预期以下情况之一时遇到符号“SELECT”

PLS-00103:遇到符号“文件结尾”编译错误