解决oracle脚本执行语句中分号问题。

时间:2022-09-08 14:56:17
我想通过脚本文件升级的方式升级用户数据库(oracle10g),内容是建立一个自定义函数。
从oracle系统中获取DLL语句如下:
CREATE FUNCTION BHGX.ISNULL ( dec1 in number, dfv in number) 
return number as 
begin 
return nvl(dec1,dfv); 
end;
在PB中将上面的语句赋给变量ls_sql,通过 EXECUTE IMMEDIATE :ls_sql using sqlca; 方法来执行脚本。
但这个执行方法的结果并不对,会是如下错误结果:
CREATE FUNCTION BHGX.ISNULL ( dec1 in number, dfv in number) 
return number as 
begin 
return nvl(dec1,dfv)
因为pb把语句中的分号作为一个sql中止符,因此第一个分号后的语句就中断了。
而oracle10g中分号是必须的语法,怎么解决这个问题?

3 个解决方案

#1


1你最好换一个函数的名字
2最后是end 函数名 ;,而不是简单的end

#2


在;前加上转义字符试试

#3


;前年加个~

#1


1你最好换一个函数的名字
2最后是end 函数名 ;,而不是简单的end

#2


在;前加上转义字符试试

#3


;前年加个~