光標的使用

 

DROP PROCEDURE IF EXISTS sp_opr;
CREATE PROCEDURE sp_opr()
BEGIN

    /**//* 定義變量一 */
    DECLARE _Err_Code CHAR(8) DEFAULT '';
    /**//* 定義變量二 */
    DECLARE _Cnt INT DEFAULT 0;
   
    /**//* 光標 */
    DECLARE _done INT DEFAULT 0;
    DECLARE _Cur_Error CURSOR FOR
        SELECT col1,col2 FROM table WHERE rec_dd=ADDDATE(CURDATE(),-1);
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET _done = 1;
   
    /**//* 打開光標 */
    OPEN _Cur_Error;
        /**//* 循環執行 */
        REPEAT
          FETCH _Cur_Error INTO _Err_Code, _Cnt; --讀取下一行
         
          IF NOT _done THEN
          -- 這裏的代碼被循環執行(這裏可以使用上面讀取的值)
          END IF;
         
        UNTIL _done END REPEAT; --當_done=1時退出被循
       
    /**//*關閉光標*/
    CLOSE _Cur_Error;

END;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章