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

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

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

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

 

责任编辑:段燃 来源: 互联网
相关推荐

2010-08-05 14:24:37

DB2存储过程

2010-09-01 15:15:20

DB2动态游标

2010-08-13 13:40:47

DB2编程序

2010-09-30 13:27:09

DB2游标

2011-04-15 13:12:08

DB2游标

2010-11-03 10:35:45

DB2存储过程

2010-08-25 09:56:02

DB2存储过程

2010-10-09 16:41:54

MYSQL存储过程

2010-11-04 10:32:18

DB2游标原理

2010-11-03 10:46:49

DB2存储过程

2010-08-31 15:39:25

DB2存储过程

2010-09-30 16:00:40

DB2动态SQL

2010-08-05 10:20:29

DB2数据库动态

2011-04-15 13:21:41

DB2翻页存储

2010-08-18 13:29:11

DB2存储过程

2010-11-04 12:00:59

db2存储过程

2010-08-05 10:42:33

DB2 拉链表存储过程

2010-11-03 10:26:22

DB2存储过程

2010-08-10 15:30:21

2010-09-27 16:10:42

SQL Server游
点赞
收藏

51CTO技术栈公众号