从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最后是end 函数名 ;,而不是简单的end
#2
在;前加上转义字符试试
#3
;前年加个~
#1
1你最好换一个函数的名字
2最后是end 函数名 ;,而不是简单的end
2最后是end 函数名 ;,而不是简单的end
#2
在;前加上转义字符试试
#3
;前年加个~