SQL 使用Cursor(游標)遍歷結果集

2022-03-03 18:33:50 字數 1343 閱讀 3630

使用cursor(游標)可以在儲存過程中遍歷select 結果集,對其進行相關的操作。

declare 游標名稱 cursor

forselect 欄位1,欄位2,欄位3,... from 表名 where

...open

游標名稱

fetch

next

from 游標名稱 into

變數名1,變數名2,變數名3,...

while

@@fetch_status=0

begin

sql語句執行過程... ...

fetch

next

from 游標名稱 into

變數名1,變數名2,變數名3,...

endclose

游標名稱

deallocate 游標名稱 (刪除游標)

--

建立乙個table1結構如下:

id int

name

varchar(50

)age

int--

要求:使用cursor進行迴圈使每條資料age+1

declare

@idint

declare

@name

varchar(50

)declare

@age

intdeclare cursor1 cursor

for--

定義游標cursor1

select

*from table1 --

使用游標的物件(跟據需要填入select文)

open cursor1 --

開啟游標

fetch

next

from cursor1 into

@id,@name,@age

--將游標向下移1行,獲取的資料放入之前定義的變數@id,@name中

while

@@fetch_status=0

--判斷是否成功獲取資料

begin

update table1 set age=age+

1where id=

@id--

進行相應處理(跟據需要填入sql文)

fetch

next

from cursor1 into

@id,@name,@age

--將游標向下移1行

endclose cursor1 --

關閉游標

deallocate cursor1

Cursor游標(游標)的使用

為了處理sql語句,oracle 將在記憶體中分配乙個區域,這就是上下文區。這個區包含了已經處理完的行數 指向被分析語句的指標,整個區是查詢語句返回的資料行集。游標就是指向上下文區控制代碼或指標。兩種游標 一 顯示游標 需要明確定義!顯示游標被用於處理返回多行資料的select 語句,游標名通過cu...

SQL 游標 Cursor 基本用法

table1結構如下 id int name varchar 50 declare idint declare name varchar 50 declare cursor1 cursor for 定義游標cursor1 select from table1 使用游標的物件 跟據需要填入select...

oracle游標cursor簡單使用

oracle游標cursor簡單使用 總共介紹兩種游標 cursor 與 sys refcursor 1 cursor游標使用 sql 簡單cursor游標 students表裡面有name欄位,你可以換做其他表測試 定義 declare 定義游標並且賦值 is 不能和cursor分開使用 curs...