使用cursor(游標)可以在儲存過程中遍歷select 結果集,對其進行相關的操作。
declare 游標名稱 cursorforselect 欄位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...