当前位置: 代码迷 >> DB2 >> DB2 LOCATE 或 POSITION 标量函数无效 异常
  详细解决方案

DB2 LOCATE 或 POSITION 标量函数无效 异常

热度:1482   发布时间:2013-02-26 00:00:00.0
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里运行这个函数,能不能运行。
  相关解决方案