儲存過程之游標

2021-08-26 04:50:12 字數 846 閱讀 4157

游標:指標

1、 select。。。into

注意:into 關鍵字後的變數要求先宣告;

只能出現在儲存過程和觸發器,不能單獨使用;

字段(數量、型別)要和變數一致;

只能針對一行;

返回標量值;

搜尋的結果集為多條,移動指標

步驟:建立游標;

開啟游標;

獲取記錄;

關閉游標;

語法:declare 游標名稱 cursor for

select …. from …. where …;------不能有into關鍵字

注意:宣告完成後並不執行;

open 游標名稱;

fetch 游標名稱 into 變數;

close 游標名稱;

流程控制語句 while

迴圈次數無法確定, 異常提示

語法:異常**:

sqlstate**

error 1022 *********xx

參見手冊(異常對應描述)

內建異常描述

declare exit handler for sqlstate 資訊 執行的動作;

declare continue handler for sqlstate 資訊 執行的動作;

注意:1、 執行順序(宣告位置無要求,建議在開頭,當錯誤出現的時候被執行,如果

是exit型別的在終止整個儲存過程的執行;如果是continue型別的則從錯誤

出現的位置繼續);

2、構成條件;

自定義異常描述

修改儲存過程:刪除後重寫(自己練習)

儲存函式(自己練習)

和儲存過程的區別和聯絡

mysql儲存過程之游標篇

本篇主要參考mysql手冊 游標必須在宣告處理程式之前被宣告,並且變數和條件必須在宣告游標或處理程式之前被宣告。宣告游標 declare cursor name cursor for select statement 這個語句宣告乙個游標。也可以在子程式中定義多個游標,但是乙個塊中的每乙個游標必須有...

mysql儲存過程之游標使用(六)

需求 修改id為偶數的記錄分數 delimiter create procedure test cur 1 begin 定義開關 declare stopflag int default 0 定義資料存放的變數 declare my id varchar 255 default 定義游標變數 dec...

oracle 儲存過程之游標(loop)使用

declare 宣告兩個變數 v id varchar2 50 v int number cursor yb is select a.id from t d5 punishment a where a.removed 0 begin v int 1 變數賦值 open yb 開啟游標 loop 開始...