读书人

DB2语法有关问题

发布时间: 2012-03-01 10:25:46 作者: rapoo

DB2语法问题,求助

SQL code
--获取文章Tag--drop function F_ConcatedTagname;create function F_ConcatedTagname(docid integer )returns varchar(8000)language sqlbegin       --定义存放tag变量      DECLARE tagstr VARCHAR(8000) default '';      DECLARE resultvalue VARCHAR(8000) default '';      --定义错误代码      DECLARE sqlcode integer default 0;            --定义游标      DECLARE querytag CURSOR FOR SELECT tagname FROM xwcmdoctag WHERE docid = docid and taggingnum > 0 FOR READ ONLY;            --打开游标      OPEN querytag;      --循环标记      tagloop:      LOOP      --抓取tagname数据      FETCH querytag INTO tagstr;      --如果没有数据了,退出循环      IF sqlcode = 100 THEN LEAVE tagloop;      END IF;      set resultvalue = resultvalue || tagstr || ';';    END LOOP;    close querytag;    return resultvalue;end;commit;--创建获取WCMChnlDoc表上的RecId字段函数--drop function F_GetRecId;create function F_GetRecId(did int,cid int)     RETURNS integer     LANGUAGE SQLbegin     return (Select recid from wcmchnldoc where docid = did and chnlid = cid   FETCH FIRST 1 ROWS ONLY); end;commit;--创建获取WCMChnlDoc表上的Modal字段函数--drop function F_GetModal;create function F_GetModal(did int,cid int)     RETURNS integer     LANGUAGE SQLbegin     return (Select modal from wcmchnldoc where docid = did and chnlid = cid   FETCH FIRST 1 ROWS ONLY); end;commit;--创建获取WCMChnlDoc表上的DocOrderPri字段函数--drop function F_GetDocOrderPri;create function F_GetDocOrderPri(did int,cid int)     RETURNS integer     LANGUAGE SQLbegin     return (Select docorderpri from wcmchnldoc where docid = did and chnlid = cid   FETCH FIRST 1 ROWS ONLY); end;commit;--创建获取WCMChnlDoc表上的DocStatus字段函数--drop function F_GetStatus;create function F_GetStatus(did int,cid int)     RETURNS integer     LANGUAGE SQLbegin     return (Select docstatus from wcmchnldoc where docid = did and chnlid = cid   FETCH FIRST 1 ROWS ONLY); end;commit;--创建包含Tag和站点号的视图--drop view V_WCMDocumentAndTags;create view V_WCMDocumentAndTagsasSELECT WCMDOCUMENT.*,kmdoctags.DocTags AS DocTags,F_GetStatus(WCMDOCUMENT.DocId,WCMDOCUMENT.DocChannel) as docstatus1,F_GetRecId(WCMDOCUMENT.DocId,WCMDOCUMENT.DocChannel) as RecId,F_GetDocOrderPri(WCMDOCUMENT.DocId,WCMDOCUMENT.DocChannel) as DocorderPri,F_GetModal(WCMDOCUMENT.DocId,WCMDOCUMENT.DocChannel) as ModalFROM WCMDOCUMENT LEFT OUTER JOIN (SELECT docid, F_ConcatedTagname(docid) DocTags FROM xwcmdoctag GROUP BY docid) kmdoctags ON WCMDOCUMENT.DOCID = kmdoctags.docid WHERE (WCMDOCUMENT.DOCSTATUS > 0)



这个是我写的一段SQL脚本,在DB2 V9.7 开发版 下执行没有问题,因为服务器上是DB2 V9.3 企业版,执行不通过,请教高人略作修改,谢谢啦

[解决办法]
报错信息是什么,这么多看不清楚的

读书人网 >IBM DB2

热点推荐