DB2存储过程使用动态游标的例子.docx
文本预览下载声明
本文将为您介绍一个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 AA记A录;-程-
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
begin
set r_code=SQLCODE; set o_err_no=1;
set o_err_msg处=理[||stat出e|错|],错||误
代码 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 stat找e=到 end;
--声明结束
0 行记录或已经到记录结尾.;
SET state=[ad单d]独测试中,统计条数;
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=[ad查d]具体信息; 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
显示全部