首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > IBM DB2 >

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

2012-03-21 
DB2 LOCATE 或 POSITION 标量函数无效 错误CREATE FUNCTION DB2INST1.getStringBySymbol (tString VAR

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

热点排行