MYSQL儲存過程遊標定義出現錯誤
阿新 • • 發佈:2021-02-06
Navicat中寫了一個簡單的儲存過程,用到了遊標,僅僅是定義階段,就不斷報錯,相關語句如下:
#step 1 定義遊標結束識別符號
DECLARE DONE INT DEFAULT FALSE;
#step2 定義遊標
DECLARE DPID_CUR CURSOR FOR SELECT cm_no FROM e_c_m_db.data_points;
#step3 定義異常時改變遊標結束識別符號機制
DECLARE CONTINUE HANDLER FOR NOT FOUND SET DONE = TRUE;
#點號 用於存遊標值
DECLARE DPID VARCHAR(10);
錯誤如下所示:
1.Cursor declaration after handler declaration
2.Variable or condition declaration after cursor
網上查了很多資料,皆是調整順序 先定義遊標 再定義HANDLER,反覆調整順序,反覆出現如上錯誤
最後將全部變數宣告,注意是全部,不單單指有關遊標的放在遊標相關定義前面,如下
#點號 用於存遊標值
DECLARE DPID VARCHAR (10);
#step 1 定義遊標結束識別符號
DECLARE DONE INT DEFAULT FALSE;
#step2 定義遊標
DECLARE DPID_CUR CURSOR FOR SELECT cm_no FROM e_c_m_db.data_points;
#step3 定義異常時改變遊標結束識別符號機制
DECLARE CONTINUE HANDLER FOR NOT FOUND SET DONE = TRUE;
成功執行
Mark:原因待考證