oracle创建函数编译错误,错误PLS-00103在Oracle中编译用户定义的函数

在Oracle中编译用户定义的函数时遇到PLS-00103错误,问题源于在参数声明中指定VARCHAR2(50)。正确的做法是去掉长度限制或使用自定义类型。通过修改函数,成功解决了编译问题。
摘要由CSDN通过智能技术生成

在存储过程中指定参数时,我们不能限制数据类型.也就是说,只使用VARCHAR2而不是VARCHAR2(50).

只是为了证明我正在复制你的问题……

SQL> CREATE OR REPLACE FUNCTION lm_date_convert (lm_date_in IN VARCHAR2(50))

2 RETURN DATE DETERMINISTIC IS

3 BEGIN

4 RETURN(TO_DATE(REGEXP_REPLACE(lm_date_in,'YYYY-MM-DD'));

5 END;

6 /

Warning: Function created with compilation errors.

SQL> sho err

Errors for FUNCTION LM_DATE_CONVERT:

LINE/COL ERROR

-------- -----------------------------------------------------------------

1/49 PLS-00103: Encountered the symbol "(" when expecting one of the

following:

:= . ),@ % default character

The symbol ":=" was substituted for "(" to continue.

SQL>

现在来解决它:

SQL> ed

Wrote file afiedt.buf

1 CREATE OR REPLACE FUNCTION lm_date_convert (lm_date_in

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值