db2 存储过程 load
CREATE PROCEDURE A(
IN YWSJKSRQ DATE,--传进来的开始时间
IN YWSJJSRQ DATE)--传进来的结束时间
SPECIFIC A
MODIFIES SQL DATA
NOT DETERMINISTIC
NULL CALL
LANGUAGE SQL
BEGIN
DECLARE V_TS INTEGER DEFAULT 0;
DECLARE SqlStr VARCHAR(500);
declare staffcursor cursor for
select tdata.V_ND,T1.wdzj,T3.wdzj,T2.wdzj,T4.wdzj,0,tdata.V_SJWCZ,tdata.V_GXRQ,'ms',current timestamp,'sjy'
from (select a.DPTID,a.ITEMID,cast(left(a.DATEFLAG,4) as integer) AS V_ND,
left(a.DATEFLAG,4)||'-'||right(a.DATEFLAG,2) as V_NDYD,
a.ITEMVALUE AS V_SJWCZ ,b.groupid,A.EDITTIME AS V_GXRQ
from TBM_DATA_ACHIEVED a,
(select b.DPTID,c.GROUPID,c.ITEMID from tbm_groupdist B
left join info_itemgroup C on B.GROUPID =C.GROUPID) b
where a.dptid=b.dptid and a.itemid=b.itemid and a.datatype=7040
AND int(left(a.DATEFLAG,4))>= year(YWSJKSRQ) AND int(left(a.DATEFLAG,4))<=year(YWSJJSRQ)
AND left(a.DATEFLAG,4)||'-'||right(a.DATEFLAG,2)>=cast(YWSJKSRQ AS VARCHAR(7))
AND left(a.DATEFLAG,4)||'-'||right(a.DATEFLAG,2)<=cast(YWSJJSRQ AS VARCHAR(7))
) TDATA
left join T_LOOKUP_ZJ T1 on rtrim(char(TDATA.dptid)) =t1.wdywdm and t1.wddm=2
left join T_LOOKUP_ZJ T2 on rtrim(char(TDATA.itemid)) =t2.wdywdm and t2.wddm=13
left join T_LOOKUP_ZJ T3 on rtrim(char(TDATA.groupid))=t3.wdywdm and t3.wddm=12
left join T_LOOKUP_ZJ T4 on rtrim(char(TDATA.dptid)) =t4.wdywdm and t4.wddm=8 ;
----声明游标
DELETE from T_F_02_SJWC WHERE ND>=YEAR(YWSJKSRQ) AND ND<=YEAR(YWSJJSRQ);
--更改表附加方式
CALL SYSPROC.ADMIN_CMD('load from staffcursor of cursor insert into T_F_02_SJWC_TEMP1');
SELECT COUNT(*) INTO V_TS FROM T_F_02_SJWC_TEMP1 WHERE ND>=YEAR(YWSJKSRQ) AND ND<=YEAR(YWSJJSRQ);
COMMIT;
END
编译完成后,直接运行存储过程老是报一个这样的错
SQL0104N An unexpected token "cursor" was found following "OF". Expected tokens may include: "ASC". SQLSTATE=42601
请高手指点下