DB2存儲(chǔ)過程中對(duì)動(dòng)態(tài)游標(biāo)的正確使用方案
此文章主要介紹的是DB2存儲(chǔ)過程中對(duì)動(dòng)態(tài)游標(biāo)的正確使用,相信如果你掌握了DB2存儲(chǔ)過程中對(duì)動(dòng)態(tài)游標(biāo)的正確使用這項(xiàng)技術(shù),會(huì)在以后的學(xué)習(xí)或是工作中帶來很大的幫助,以下就是文章的主要內(nèi)容的詳細(xì)描述。
- 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
聲明開始
臨時(shí)變量出錯(cuò)變量
- DECLARE SQLCODE integer default 0;
- DECLARE SQLStmt varchar(1024) default '';
- DECLARE r_code integer default 0;
- DECLARE state varchar(1024) default 'AAA';
記錄程序當(dāng)前所作工作
- 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_integrate';
聲明DB2存儲(chǔ)過程中放游標(biāo)的值
聲明動(dòng)態(tài)游標(biāo)存儲(chǔ)變量
- DECLARE stmt1 STATEMENT;
- DECLARE c1 CURSOR FOR stmt1;
聲明出錯(cuò)處理
- DECLARE EXIT HANDLER FOR SQLEXCEPTION
- begin
- set r_code=SQLCODE;
- set o_err_no=1;
set o_err_msg='處理['||state||']出錯(cuò) ,'||'錯(cuò)誤代碼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行記錄或已經(jīng)到記錄結(jié)尾.';
end;
聲明結(jié)束
SET state='[add]單獨(dú)測(cè)試中中,統(tǒng)計(jì)條數(shù)';
- 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
以上的相關(guān)內(nèi)容就是對(duì)DB2存儲(chǔ)過程中使用動(dòng)態(tài)游標(biāo)的介紹,望你能有所收獲。