PLS-00103:遇到符号“/”

Posted

技术标签:

【中文标题】PLS-00103:遇到符号“/”【英文标题】:PLS-00103: Encountered the symbol "/" 【发布时间】:2016-11-13 02:58:08 【问题描述】:

我知道这个问题已经被问过很多次了,但我的问题似乎并没有消失。我已经将分隔符放在正确的位置,但我仍然不断收到错误 'Error(9,1): Encountered the symbol "/"' 在第 9 行。如果我没记错的话,是导致错误的分隔符一定会在那里。

CREATE OR REPLACE PACKAGE FOR_CLASS_NOV2 AS

PROCEDURE PRINT_SNAME(S_NO S.SNO%TYPE);

FUNCTION FIND_MAX_QTY
RETURN NUMBER;

END;
/

CREATE OR REPLACE PACKAGE BODY FOR_CLASS_NOV2 AS

PROCEDURE PRINT_SNAME(S_NO S.SNO%TYPE) IS
S_SNAME S.SNAME%TYPE;

BEGIN
  SELECT SNAME
  INTO S_SNAME
  FROM S
  WHERE SNO = S_NO;

  DBMS_OUT.PUT_LINE('SUPPLIER NAME IS: ' || S_NAME);
END PRINT_SNAME;

FUNCTION FIND_MAX_QTY()
RETURN NUMBER IS

M_QTY NUMBER;
BEGIN
  SELECT AX(STY)
  INTO M_QTY
  FROM SP;
  RETURN M_QTY;
END FIND_MAX_QTY;

END;
/

【问题讨论】:

你是如何运行脚本的?您标记了 2 个不同的客户端工具,所以这有点令人困惑。 / 通常在针对 SQLPlus 客户端运行脚本时使用。使用 SQLDeveloper 运行时它不应该存在 它也不应该在 PL/SQL Developer 中使用,除非在命令或 SQL 窗口中(通常不会用于 PL/SQL)。 您的代码在 PL/SQL Developer 版本 9 中适用于我。 【参考方案1】:

如果没有参数,我认为你不应该在函数中使用括号。

尝试替换这个:

FUNCTION FIND_MAX_QTY()
RETURN NUMBER IS

有了这个:

FUNCTION FIND_MAX_QTY
RETURN NUMBER IS

另外,您有一个名为 S_SNAME 的变量,但您正在打印 S_NAME

【讨论】:

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

PLS-00103:遇到符号“COLUMNS”

PLS-00103:遇到符号“,”

错误(30,11):PLS-00103:遇到符号更新错误

获取 PLS-00103:在创建包时遇到符号“/”错误

PLS-00103:遇到符号

ORA-06550:第 13 行,第 4 列:PLS-00103:遇到“UPDATE” ORA-06550:第 15 行,第 3 列:PLS-00103:遇到符号“END”