政府机关数据库

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  

请高手指点下
参与13

12同行回答

dikarsdikars数据库管理员DGLCAMEL
自己每句SQL 测试一下。显示全部
自己每句SQL 测试一下。收起
互联网服务 · 2010-06-05
浏览1591
dikarsdikars数据库管理员DGLCAMEL
或者检查一下你的CUSOR 中的SELECT 语句是否有问题,先测试一下。显示全部
或者检查一下你的CUSOR 中的SELECT 语句是否有问题,先测试一下。收起
互联网服务 · 2010-06-01
浏览1616
dikarsdikars数据库管理员DGLCAMEL
应该在过程中的参数不可以用游标变量。显示全部
应该在过程中的参数不可以用游标变量。收起
互联网服务 · 2010-06-01
浏览1781
jian16220jian16220软件开发工程师一言难尽
定义在里面的话,这种 left(a.DATEFLAG,4)||'-'||right(a.DATEFLAG,2)>=cast(YWSJKSRQ AS VARCHAR(7)) 中的'-' ,select 'ms' 这种在字符中该怎么表示?能否具体表示下。显示全部
定义在里面的话,这种 left(a.DATEFLAG,4)||'-'||right(a.DATEFLAG,2)>=cast(YWSJKSRQ AS VARCHAR(7)) 中的'-' ,select 'ms' 这种在字符中该怎么表示?能否具体表示下。收起
政府机关 · 2010-05-28
浏览1852
ninthninth数据库管理员拓维信息系统股份有限公司
你的问题出在游标的定义在admin_cmd外显示全部
你的问题出在游标的定义在admin_cmd外收起
互联网服务 · 2010-05-28
浏览1801
ninthninth数据库管理员拓维信息系统股份有限公司
存储过程中可以调用load显示全部
存储过程中可以调用load收起
互联网服务 · 2010-05-28
浏览1810
SYSPROC.DB2LOAD(),这个在存储过程中可以调用显示全部
SYSPROC.DB2LOAD(),这个在存储过程中可以调用收起
2010-05-28
浏览1743
weiruan85weiruan85数据库管理员ibm
存储过程里边调用load貌似不行显示全部
存储过程里边调用load貌似不行收起
政府机关 · 2010-05-28
浏览1777
jian16220jian16220软件开发工程师一言难尽
以上两位的意见我都尝试了,还是不行,还是报那个错误SQL0104N  An unexpected token "cursor" was found following "OF".  Expected tokens may include:  "ASC".  SQLSTATE=42601  真不知道怎么弄了。。...显示全部
以上两位的意见我都尝试了,还是不行,还是报那个错误
SQL0104N  An unexpected token "cursor" was found following "OF".  Expected tokens may include:  "ASC".  SQLSTATE=42601  
真不知道怎么弄了。。收起
政府机关 · 2010-05-28
浏览1848
FelixFelix数据仓库工程师亚信联创科技(北京)有限公司
问题出在CALL SYSPROC.ADMIN_CMD('load from staffcursor of cursor insert into T_F_02_SJWC_TEMP1');尝试 ...pengjianjun 发表于 2010-5-28 13:49 嗯,经常看到这个函数,我也没用过,呵呵。显示全部
问题出在CALL SYSPROC.ADMIN_CMD('load from staffcursor of cursor insert into T_F_02_SJWC_TEMP1');尝试 ...
pengjianjun 发表于 2010-5-28 13:49

嗯,经常看到这个函数,我也没用过,呵呵。收起
软件开发 · 2010-05-28
浏览1808

提问者

jian16220
软件开发工程师一言难尽
擅长领域: 数据库

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2010-05-28
  • 关注会员:1 人
  • 问题浏览:11323
  • 最近回答:2010-06-05
  • X社区推广