PLS-00103:在预期以下之一时遇到符号“文件结尾”
Posted
技术标签:
【中文标题】PLS-00103:在预期以下之一时遇到符号“文件结尾”【英文标题】:PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following 【发布时间】:2016-10-12 13:17:43 【问题描述】:这条 PL/SQL 语句:
FUNCTION f_comparestring(ps_string1 VARCHAR2, ps_string2 VARCHAR2) RETURN VARCHAR2 IS
ps_match VARCHAR2(5);
BEGIN
IF (ps_string1 = ps_strin2) THEN
ps_match := 'TRUE';
ELSE
ps_match := 'FALSE';
END IF;
RETURN ps_match;
END;
引发以下错误:
PLS-00103:在预期以下情况之一时遇到符号“文件结尾”:开始结束函数编译指示过程
我几乎不知所措。这似乎是一个相当简单的陈述。有人可以帮忙吗?
【问题讨论】:
【参考方案1】:在IF
中应该是ps_string2
而不是ps_strin2
。要创建一个函数,你需要使用create function
您还需要在 PL/SQL 块之后添加一个/
。
详情见:https://***.com/a/10207695/330315
所以正确的说法是:
CREATE FUNCTION f_comparestring(ps_string1 VARCHAR2, ps_string2 VARCHAR2) RETURN VARCHAR2 IS
ps_match VARCHAR2(5);
BEGIN
IF (ps_string1 = ps_string2) THEN
ps_match := 'TRUE';
ELSE
ps_match := 'FALSE';
END IF;
RETURN ps_match;
END;
/
【讨论】:
谢谢@a_horse_with_no_name,但是在Package Body中创建时是否需要在FUNCTION
前面添加CREATE
?
@Noah: 不,在包中没有必要。但是如果你正在创建一个包,你需要向我们展示包体的整个声明。以上是关于PLS-00103:在预期以下之一时遇到符号“文件结尾”的主要内容,如果未能解决你的问题,请参考以下文章
错误:PLS-00103:在预期以下情况之一时遇到符号“)”