DB2數(shù)據(jù)庫對動態(tài)游標(biāo)的使用
本文將為您介紹在DB2數(shù)據(jù)庫中程,對動態(tài)游標(biāo)的正確使用方法,如果您對DB2存儲過程中對動態(tài)游標(biāo)的使用感興趣的話,不妨一看,以下就是文章的主要內(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  
聲明開始
臨時變量出錯變量
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存儲過程中放游標(biāo)的值
聲明動態(tài)游標(biāo)存儲變量
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='處理['||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行記錄或已經(jīng)到記錄結(jié)尾.';#p#
end;
聲明結(jié)束
SET state='[add]單獨測試中中,統(tǒng)計條數(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)容就是對DB2存儲過程中使用動態(tài)游標(biāo)的介紹. 
 















 
 
 
 
 
 
 