PL/SQL 函数错误 - PLS-00103:遇到符号“IS”
Posted
技术标签:
【中文标题】PL/SQL 函数错误 - PLS-00103:遇到符号“IS”【英文标题】:PL/SQL Function Error - PLS-00103: Encountered the symbol "IS" 【发布时间】:2012-11-04 05:07:48 【问题描述】:我正在尝试创建一个简单的 PL/SQL 函数,但它返回错误 -> PLS-00103:遇到符号“IS”。我不确定这里出了什么问题,所以那里的任何人都可以帮忙。我按照以下步骤操作 -
Step1
- 使用 sysdba 登录 - sqlplus / as sysdba
Step2
- 在C:\
下使用以下代码创建了一个文件名test.sql
-
CREATE OR REPLACE FUNCTION employer_details_func
RETURN VARCHAR(20);
IS
emp_name VARCHAR(20);
BEGIN
SELECT first_name INTO emp_name
FROM emp_tbl WHERE empID = '100';
RETURN emp_name;
END;
/
Step3
- 运行以下命令 -
SQL>@C:\test.sql
Warning: Function created with compilation errors.
SQL> show error function Func;
Errors for FUNCTION FUNC:
LINE/COL ERROR
5/1 PLS-00103: Encountered the symbol "IS"
SQL>
不知道为什么我会收到这个奇怪的错误。非常感谢任何帮助。
【问题讨论】:
当您登录 AS SYSDBA 时,您连接到 SYS 帐户。请不要这样做。 SYS 是一个非常强大的帐户,因为它拥有数据字典。因此,如果我们不了解我们在做什么,很容易破坏作为 SYS 工作的数据库。没有冒犯,但你的问题的主旨(一个微不足道的语法错误)表明这是你的情况。使用 SYS 创建应用程序用户,然后使用它创建架构对象。 【参考方案1】:如下创建你的函数并尝试
CREATE OR REPLACE FUNCTION employer_details_func
RETURN VARCHAR2
IS
emp_name VARCHAR2 (20);
BEGIN
SELECT first_name
INTO emp_name
FROM emp_tbl
WHERE empID = '100';
RETURN emp_name;
END;
/
【讨论】:
还是同样的错误:( - 5/1 PLS-00103: 遇到符号“IS” 你可以尝试从 sql plus 执行你的函数为select employer_details_func from dual;
Polppan - 为你 +1 :) - 使用上面的语句,我可以看到输出 - SQL> select employer_details_func from dual; EMPLOYER_DETAILS_FUNC ---------------------- sita
所有功能都存储在双?不知道为什么编译过程中出现奇怪的警告?
dual 是一种虚拟表,您可以在其中使用 select 语句执行函数。更多信息here。当我从脚本执行你的函数时,它编译没有任何错误。
那么可能是一些软件问题。无论如何,你通过建议运行它对我帮助很大:)。谢谢一帮朋友。 ++ 为您提供建议。以上是关于PL/SQL 函数错误 - PLS-00103:遇到符号“IS”的主要内容,如果未能解决你的问题,请参考以下文章
琐碎的 PL/SQL 块生成令人沮丧的 PLS-00103 错误