DB2游標原理對於很多剛剛接觸DB2數據庫的新人來說,還比較陌生,下面就為您詳細介紹DB2游標原理,希望讓您對DB2游標原理有更多的了解。
DB2游標原理
一般情況下,SQL查詢結果都是多條紀錄的結果集,而高級語言一次只能處理一條紀錄,用游標機制,將多條紀錄一次一條讀取出來處理。從而把對集合的操作轉化為對單個紀錄的處理。游標使用的步驟如下:
1、說明游標。說明游標的時候並不執行select語句。
declare <游標名> cursor for <select語句>;
2、打開游標。打開游標實際上是執行相應的select語句,把查詢結果讀取到緩沖區中。這時候游標處於活動狀態,指針指向查詢結果集的第一條紀錄。
open <游標名>;
3、推進游標指針並讀取當前紀錄。用fetch語句把游標指針向前推進一條紀錄,同時將緩沖區中的當前紀錄讀取出來送到變量中。fetch語句通常用在一個循環結構體中,通過循環執行fetch語句逐條取出結果集中的行進行處理。現在好多數據庫中,還允許任意方向任意步長易懂游標指針,而不僅僅是把游標指針向前推進一行了。
fetch <游標名> into <變量1>,<變量2>...
4、關閉游標。用close語句關閉游標,釋放結果集占用的緩沖區及其他資源。游標關閉後,就不再和原來的查詢結果集相聯系。但游標可以再次打開,與新的查詢結果相聯系。
close <游標名>;
DB2游標的循環控制
DB2下游標控制不是非常的輕松和方便的,也可以使用sqlcode,sqlstate來控制,或者用戶自己控制,DB2下SQLCODE,SQLSTATE不能直接使用,必須聲明後使用,(也就是說將系統的SQLCODE,SQLSTATE本地實例化一分拷貝)。一般采用用戶定義游標開關和sqlcode返回信息一起共同控制的方法.