日期:2014-05-17  浏览次数:20969 次

db2 函数
CREATE FUNCTION fx_getcatp(fx_catp varchar(4)) RETURNS varchar(128)
LANGUAGE SQL
BEGIN ATOMIC
  DECLARE fx_value varchar(128) ;--
  set (fx_value) =(select fx_value  from fx_catp  where fx_key = fx_catp);--
      return fx_value;--
  end
;


这个db2 函数 报错,错误代码如下:

 16:00:24  [CREATE - 0 row(s), 0.000 secs]  [Error Code: -104, SQL State: 42601]  DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=);fx_value varchar(128;END-OF-STATEMENT, DRIVER=3.50.152
 16:00:24  [SET - 0 row(s), 0.000 secs]  [Error Code: -104, SQL State: 42601]  DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=set;BEGIN-OF-STATEMENT;SELECT, DRIVER=3.50.152
 16:00:24  [RETURN - 0 row(s), 0.000 secs]  [Error Code: -104, SQL State: 42601]  DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=END-OF-STATEMENT;return fx_value;JOIN <joined_table>, DRIVER=3.50.152
 16:00:24  [END - 0 row(s), 0.000 secs]  [Error Code: -104, SQL State: 42601]  DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=END-OF-STATEMENT;end;JOIN <joined_table>, DRIVER=3.50.152
... 4 statement(s) executed, 0 row(s) affected, exec/fetch time: 0.000/0.000 sec  [0 successful, 0 warnings, 4 errors]


请大神回帖!!!!!!非常感谢。
------解决方案--------------------

-104 42601 SQL语句中遇到非法符号 
将end最后的分号去掉试一下。还有4、5、6行的--也去掉。
------解决方案--------------------
db2 ? 楼主应该去其他数据库发帖。。。发错地方了。。