函数创建时编译错误成功,为啥?
Posted
技术标签:
【中文标题】函数创建时编译错误成功,为啥?【英文标题】:success with compilation error on Function creation, why?函数创建时编译错误成功,为什么? 【发布时间】:2016-12-07 11:46:31 【问题描述】:我尝试在 Oracle Apex 5,SQL 命令中创建此函数,并导致此错误“ORA-24344:编译错误成功。”你为什么这么认为?我正在尝试创建一个随机生成的代码。
CREATE OR REPLACE FUNCTION generate_code()
return varchar2
AS
code varchar2;
BEGIN
code := DBMS_RANDOM.value(1,100);
return code;
END;
【问题讨论】:
【参考方案1】:语法错误,见下文
正确的语法是
CREATE OR REPLACE FUNCTION generate_code
return varchar2
AS
code varchar2(100);
BEGIN
code := DBMS_RANDOM.value(1,100);
return code;
END;
带有错误描述的原始语法:
SQL> CREATE OR REPLACE FUNCTION generate_code()
2
3 return varchar2
4 AS
5 code varchar2;
6 BEGIN
7 code := DBMS_RANDOM.value(1,100);
8 return code;
9 END;
10
11 /
Warning: Function created with compilation errors.
SQL> show error
Errors for FUNCTION GENERATE_CODE:
LINE/COL ERROR
-------- -----------------------------------------------------------------
1/24 PLS-00103: Encountered the symbol ")" when expecting one of the
following:
<an identifier> <a double-quoted delimited-identifier>
current delete exists prior
【讨论】:
您先生真了不起!谢谢,我的问题已经解决了。以上是关于函数创建时编译错误成功,为啥?的主要内容,如果未能解决你的问题,请参考以下文章
为啥在尝试调用采用动态参数的基本构造函数/方法时会出现此编译错误?
为啥在 TypeScript 中的“任何”字段类型变量上使用“字符串”函数时没有编译时错误?