成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

DB2中游標使用的問題解析

數據庫
在使用DB2數據庫中的游標時,您可能會有這些問題:如果對一個表設置了游標,可不可以同時對這個表進行update操作? 怎么樣操作才不會影響游標的位置? 本文將為您講解處理的方法,供您參考。

在使用DB2數據庫中的游標時,您可能會有這些問題:如果對一個表設置了游標,可不可以同時對這個表進行update操作? 怎么樣操作才不會影響游標的位置? 本文將為您講解處理的方法,供您參考。

使用定位操作更改行 

可更新游標支持通過游標更新行的數據修改語句。當定位在可更新游標中的某行上時,您可以執行更新或刪除操作,這些操作針對用于在游標中建立當前行的基表行。 
   這些就稱為定位更新。 
 
定位更新在打開游標的同一個連接上執行。 
   這就允許數據修改共享與游標相同的事務空間,并且使游標保持的鎖不會阻止更新。 
 
有兩種方法在游標中執行定位更新:   
   UPDATE  或  DELETE  語句中的  Transact-SQL  WHERE  CURRENT  OF  子句。 
   數據庫  API  定位更新函數或方法,如  ODBC  SQLSetPos  函數。 
 
使用  Transact-SQL  執行定位更新 
   Transact-SQL  WHERE  CURRENT  OF  子句典型用于  Transact-SQL  存儲過程、觸發器以及腳本 
 (當需要根據游標中特定行進行修改時)。存儲過程、觸發器、或腳本將: 
   DECLARE  和  OPEN  游標。 
   用  FETCH  語句在游標中定位于一行。 
   用  WHERE  CURRENT  OF  子句執行  UPDATE  或  DELETE  語句。用  DECLARE  語句中的  cursor_name   
   作為  WHERE  CURRENT  OF  子句中的  cursor_name。   
例程: 
declare    cursor_name    cursor    for      #p#
select    *    from    T2 
for  update     
open    cursor_name     
fetch    next    from    cursor_name     
while  @@Fetch_Status  =  0   
begin 
update    T2  set  sname  =  'lx_'  +  sname  --right(sname,len(sname)-3)   
where    current    of    cursor_name     
fetch    next    from    cursor_name     
end 
close  cursor_name 
deallocate  Cursor_Name 

在DB2中也有類似的用法,由于DB2中的SQL語法和SQL SERVER有所不同,所以DB下的存儲過程如下:
CREATE PROCEDURE KYJT.SP_TESTT ( )
  SPECIFIC KYJT.SQL060421171925193
  LANGUAGE SQL
  NOT DETERMINISTIC
  CALLED ON NULL INPUT
  MODIFIES SQL DATA
  INHERIT SPECIAL REGISTERS
BEGIN
DECLARE   PNAME VARCHAR(50);
DECLARE PID INT;
DECLARE   v_count int;
DECLARE   SQLSTATE   CHAR(5);    
DECLARE   at_end   INT   DEFAULT   0;   #p#
DECLARE not_found CONDITION FOR SQLSTATE '02000';

DECLARE C1 CURSOR FOR SELECT ID,NAME FROM KYJT.TESTT FOR UPDATE ;
DECLARE   CONTINUE   HANDLER   FOR   not_found  
SET   at_end   =   1;    
 OPEN C1;
 INS_LOOP:     
 LOOP
FETCH C1 INTO PID,PNAME; 
if at_end = 1 then
LEAVE INS_LOOP;
END IF;
UPDATE KYJT.TESTT A
SET NAME = (SELECT NAME FROM KYJT.TEST B WHERE B.ID=PID) WHERE CURRENT OF C1;
END LOOP;
 CLOSE C1;
END

 

責任編輯:段燃 來源: 博客園
相關推薦

2010-09-30 13:27:09

DB2游標

2010-11-04 10:32:18

DB2游標原理

2010-08-03 12:58:29

DB2游標循環

2010-08-31 14:33:46

DB2游標

2011-04-15 13:12:08

DB2游標

2010-09-01 15:09:41

DB2動態游標

2010-09-01 15:15:20

DB2動態游標

2010-08-13 13:40:47

DB2編程序

2010-08-05 14:24:37

DB2存儲過程

2010-08-19 10:44:47

DB2 常見問題

2010-09-01 10:38:47

DB2統計信息

2010-09-30 16:00:40

DB2動態SQL

2010-08-25 13:46:00

DB2函數日期

2009-07-06 17:34:26

遠程復制DB2

2010-08-20 11:22:48

DB2性能調優

2010-08-27 10:29:17

DB2數據庫開發

2010-08-10 15:30:21

2010-08-16 17:07:43

DB2 trc

2011-03-22 12:38:21

DB2數據庫游標循環

2009-01-18 13:21:27

DB2數據庫常見問題
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 老头搡老女人毛片视频在线看 | 欧美综合一区 | 久久99深爱久久99精品 | 欧美精品一区二区在线观看 | 久久久久久黄 | 99国产精品视频免费观看一公开 | 91精品国产综合久久久久久丝袜 | 毛片站| 99精品久久 | 国产日产精品一区二区三区四区 | 国产成视频在线观看 | 一区二区三区国产精品 | 精品久久精品 | 日韩精品一区二区三区中文字幕 | 久久久www成人免费精品 | 亚洲最新在线 | 国产精品久久久久久久久婷婷 | 一区二区成人 | 一区二区三区精品 | 国产又色又爽又黄又免费 | 亚洲免费视频一区 | 亚洲 精品 综合 精品 自拍 | 福利在线看| 男人av网 | 在线中文字幕视频 | 免费国产视频 | 日本在线观看网址 | 人人干人人舔 | 国产精品久久久久久久久久久久久久 | 亚洲国产精品一区二区第一页 | 国产精品一码二码三码在线 | 6080yy精品一区二区三区 | 国产日韩久久 | 99精品视频在线 | 亚洲成人午夜在线 | 在线观看免费黄色片 | 国产精品无码久久久久 | 亚洲精品9999 | 国产羞羞视频在线观看 | 久久久久国产一区二区三区 | 成人免费在线播放视频 |