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里运行这个函数,能不能运行。