DB2存储过程使用动态游标的例子

本文将为您介绍一个DB2存储过程使用动态游标的例子,如果您对动态游标的使用感兴趣的话,不妨一看,对您学习DB2的使用会有所帮助。

创新互联公司是专业的威宁网站建设公司,威宁接单;提供成都网站建设、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行威宁网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

CREATE PROCEDURE data_wtptest( IN in_taskid_timestamp varchar(30),

                                 OUT o_err_no int,
                                 OUT o_err_msg varchar(1024))
    LANGUAGE SQL

P1: BEGIN ATOMIC
     --声明开始
     --临时变量出错变量
       DECLARE SQLCODE       integer default 0;
       DECLARE SQLStmt       varchar(1024) default '';
       DECLARE r_code        integer default 0;
       DECLARE state         varchar(1024) default 'AAA';--记录程序当前所作工作
       DECLARE at_end        int DEFAULT 0;
       DECLARE t_destnetid     int default 0;
       DECLARE t_recvid        varchar(30) default '';
       DECLARE SP_Name         varchar(50) default 'data_wtptest';

     --声明放游标的值
     --声明动态游标存储变量
       DECLARE stmt1 STATEMENT;
       DECLARE c1 CURSOR FOR stmt1;

     --声明出错处理
       DECLARE EXIT HANDLER FOR SQLEXCEPTION #p#
          begin
             set r_code=SQLCODE;
             set o_err_no=1;
             set o_err_msg='处理['||state||']出错 ,'||'错误代码SQLCODE:['||CHAR(r_code) || '].';
             insert into fcc_sp_log(object,name,value) values(SP_Name,in_taskid_timestamp,o_err_msg);
          end;
       DECLARE continue HANDLER for not found
          begin
             set at_end = 1;
             set state='找到0行记录或已经到记录结尾.';
          end;
     --声明结束

     SET state='[add]单独测试中,统计条数';
            SET SQLStmt='SELECT count(*) FROM wtp_pre_download where task_timestamp = ?';
            PREPARE stmt1 FROM SQLStmt;
            OPEN c1 USING in_taskid_timestamp;
            FETCH c1 INTO t_destnetid;
            CLOSE c1;

            SET state='[add]查具体信息';
            SET at_end = 0;
            SET SQLStmt='SELECT recv_userid FROM wtp_pre_download where task_timestamp = ?';
            PREPARE c1 FROM SQLStmt;
            OPEN c1 USING in_taskid_timestamp;
            SET state='[add]************';
            FETCH c1 INTO t_recvid;
            SET state='[add]============';
            insert into fcc_sp_log(object,name,value) values(SP_Name,in_taskid_timestamp,t_recvid);
     END p1

分享标题:DB2存储过程使用动态游标的例子
当前地址:http://www.shufengxianlan.com/qtweb/news28/105578.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联