遊標

1 定義:對SELECT語句取得的結果進行一件一件處理的功能。

2 指針:確定當前記錄的信息,可以理解爲內存中保存此記錄的“地址”,在遊標處理中,通過移動指針來進行逐行的數據處理。

3 聲明遊標

declare 遊標名 cursor for select 語句;

4 打開遊標

open 遊標名;

使用遊標時,必須執行聲明過的遊標,取得具體的記錄集合,即需要打開遊標。

5 保存指針數據到變量中

fetch 遊標名 into 變量名,...;

6 讀取了所有遊標記錄後的處理
 (1)例外處理:declare 處理種類 handler for 例外的種類 例外發生時的處理;
 (2)例外種類決定完成例外發生時的處理後應該如何動作,可以指定EXIT(立即結束處理)或CONTINUE(繼續下面的處理,即fetch…into後還會繼續執行)。

7 關閉遊標

close 遊標名;

8 例子

mysql> DELIMITER //
mysql> CREATE PROCEDURE sp_cursor(
    ->  OUT p_result TEXT
    -> )
    -> BEGIN
    -> DECLARE flag BIT DEFAULT 0;
    -> DECLARE tmp VARCHAR(20);
    -> DECLARE cur CURSOR FOR SELECT DISTINCT depart FROM employee;
    -> DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag=1;
    -> OPEN cur;
    -> WHILE flag!=1 DO
    -> FETCH cur INTO tmp;
    -> IF flag!=1 THEN
    -> SET p_result=CONCAT_WS(',',p_result,tmp);
    -> END IF;
    -> END WHILE;
    -> CLOSE cur;
    -> END
    -> //
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章