读书人

DB2 LOCATE 或 POSITION 标量函数无效

发布时间: 2012-03-21 13:33:14 作者: rapoo

DB2 LOCATE 或 POSITION 标量函数无效 错误
CREATE FUNCTION "DB2INST1"."getStringBySymbol" (
tString VARCHAR,tSymbol VARCHAR ,tPos integer)
RETURNS VARCHAR(1000)

BEGIN ATOMIC
declare tTempPos int ;
declare v_Result VARCHAR(1000) ;

if(tPos = 1)then
if(posstr(tString,tSymbol)<>0) then
set v_Result = nvl(substr(tString,0,posstr(tString,tSymbol)-1),' ');
else
set v_Result = nvl(tString,' ');
end if;
else
if(tPos>1)then
set tTempPos = tPos -1 ;
end if;

if(posstr(tString,tSymbol)<>0) then
set v_Result = nvl(getStringBySymbol(nvl(substr(tString,posstr(tString,tSymbol)+1),' '),tSymbol,tTempPos),' ');
else
set v_Result = ' ';
end if;
end if;

return v_Result;
end ;

此函数 出现的问题错误是 LOCATE 或 POSITION 标量函数无效 SQLSTATE=42824

估计是 posstr(tString,tSymbol)不让传入变量的错误 求高手帮忙看下哈 小弟在此谢谢了

[解决办法]
你的数据库的版本不支持这个函数吧,你看看直接在clp里运行这个函数,能不能运行。

读书人网 >IBM DB2

热点推荐