菜鸟求救!

yxjhhdx 2012-10-23 04:11:32
存储过程执行的问题:

ERROR [42601] [IBM][DB2/NT64] SQL0104N An unexpected token "COMMIT" was found following "TAFF_STAT" ( ? , ? )". Expected tokens may include: "END-OF-STATEMENT". SQLSTATE=42601

但是如果debug就不会出错,但也没结果...


我的存储过程:

DROP PROCEDURE P_REPORT_STAFF_STAT;

SET SCHEMA = 'TB_HNYC';
CREATE PROCEDURE TB_HNYC.P_REPORT_STAFF_STAT(in p_year integer,in p_month integer)

BEGIN

DECLARE C_END INTEGER DEFAULT 0;
DECLARE UNITID INTEGER;
DECLARE not_found CONDITION FOR SQLSTATE '02000';
DECLARE CUR_STAT CURSOR FOR SELECT STAFF.C_UNITID FROM TB_INF_EMPLOYEE_REPORT STAFF GROUP BY STAFF.C_UNITID;

DECLARE CONTINUE HANDLER FOR not_found SET C_END=1;

DELETE FROM TB_REPORT_STAFF_STAT WHERE C_YEAR = p_year AND C_MONTH = p_month;

OPEN CUR_STAT;
INS_LOOP:
LOOP
FETCH FROM CUR_STAT INTO UNITID;
IF C_END=1 THEN
LEAVE INS_LOOP;
END IF;

INSERT INTO TB_REPORT_STAFF_STAT
SELECT UNITID, p_year,p_month,'123');

END LOOP;
CLOSE CUR_STAT;

COMMIT;
...全文
235 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
WWWWA 2012-10-23
  • 打赏
  • 举报
回复
检查是哪句出问题


DELETE FROM TB_REPORT_STAFF_STAT WHERE C_YEAR = p_year AND C_MONTH = p_month;
SET C_END=0;

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧