游標成功開啟後,可透過 FETCH 命令逐行讀取資料進行處理。語法規則:

FETCH 七大提取選項詳細說明
- NEXT:返回結果集當前行的下一行,當前行數增為返回行號。若為首次讀取,返回第一行而非第二行
- PRIOR:返回當前行的前一行,當前行數減為返回行號。首次讀取時無資料返回,游標位置設為第一行
- FIRST:返回游標第一行
- LAST:返回游標最後一行
- ABSOLUTE {n | @nvar}:
- 正數:返回第 n 行
- 負數:從最後一行倒數第 n 行
- 超出範圍時
@@FETCH_STATUS 返回 -1;負數時執行 FETCH NEXT 得第一行,正數時執行 FETCH PRIOR 得最後一行
- n/@nvar 可為固定值或
smallint/tinyint/int 變數
- RELATIVE {n | @nvar}:
- 正數:從當前位置向後第 n 行
- 負數:從當前位置向前第 n 行
- 超出範圍處理同 ABSOLUTE
- INTO @variable_name[,...n]:將讀取資料存入多個變數,每個變數對應游標結果集相應欄位,資料類型必須匹配
@@FETCH_STATUS 全域變數:三種返回值對照

每次 FETCH 讀取後必須檢查此變數,確認上次操作成功以決定後續處理邏輯。
關鍵限制:SCROLL 選項控制提取靈活度
使用 SQL-92 語法宣告游標時,未選擇 SCROLL 選項僅能使用 FETCH NEXT,只能從第一行按順序逐行讀取,無法使用 FIRST、LAST、PRIOR 回滾讀取。選擇 SCROLL 後方可使用所有提取操作。