PLS-00103:遇到符号“文件结尾”编译错误
Posted
技术标签:
【中文标题】PLS-00103:遇到符号“文件结尾”编译错误【英文标题】:PLS-00103: Encountered the symbol "end-of-file" compile error 【发布时间】:2013-07-19 14:16:34 【问题描述】:找不到任何错误,但它编译时出错。有人看到我看不见的东西吗?
CREATE OR REPLACE FUNCTION myusername.fun_hr_format_phone (tmp in VARCHAR2) RETURN VARCHAR2
IS tmpVar VARCHAR2(12);
BEGIN
SELECT DECODE(
LENGTH(tmp),
10, SUBSTR(tmp,1,3) || '-' || SUBSTR(tmp,4,3) || '-' || SUBSTR(tmp,7,4),
7, SUBSTR(tmp,1,3) || '-' || SUBSTR(tmp,4,4), tmp
) INTO tmpVar FROM dual;
RETURN tmpVar;
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;
WHEN OTHERS THEN RAISE;
END;
/
【问题讨论】:
@user2599766:代码看起来很完美,您使用的是哪个工具?SQLFIDDLE 键入show errors
以显示语法错误并编辑您的帖子以包含错误。您的 when others then raise
子句毫无意义,应该删除,但这不会导致编译错误。
在 TOAD 中工作,错误是:PLS-00103:在预期以下情况之一时遇到符号“文件结尾”:begin function package pragma procedure subtype type use 形成当前光标
奇怪的是,它编译了另外 2 个,它只是我的 toad 实例导致了问题......我使用的是 TOAD 版本 12.0.0.61
【参考方案1】:
如果您使用的是 SQL*Plus:请注意空行,您的代码在语法上完全正确。
【讨论】:
SQL*Plus 无论如何都不介意它们用于 PL/SQL。还有一个set sqlblanklines
命令来切换它是否介意他们的SQL。以上是关于PLS-00103:遇到符号“文件结尾”编译错误的主要内容,如果未能解决你的问题,请参考以下文章
PL SQL 遇到符号“文件结尾”... PLS-00103