【问题标题】:PLS-00103: Encountered the symbol "end-of-file" compile errorPLS-00103:遇到符号“文件结尾”编译错误
【发布时间】: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

标签: sql oracle pls-00103


【解决方案1】:

如果您使用的是 SQL*Plus:请注意空行,您的代码在语法上完全正确。

【讨论】:

  • SQL*Plus 无论如何都不介意它们用于 PL/SQL。还有一个set sqlblanklines 命令来切换它是否介意他们的SQL。
猜你喜欢
  • 2016-02-12
  • 2023-03-21
  • 1970-01-01
  • 2018-04-11
  • 2018-06-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多