MySQL 獲取游標結(jié)果報錯:1193-Unknown system variable ‘done’

MySQL執(zhí)行以下存儲過程

DROP PROCEDURE IF EXISTS pro_empIndepart;

CREATE PROCEDURE pro_empIndepart (IN empid INT)
    READS SQL DATA
BEGIN
        DECLARE  c_id INT;
    DECLARE  c_empname VARCHAR(50);
    DECLARE  c_job VARCHAR(50);
    DECLARE  c_salary INT;
    DECLARE cur CURSOR for select  e.id,e.yuangongname,e.word,e.wage from emp e where  e.id =  empid;
        declare continue handler for not found set done = 1;
    
    OPEN cur;
        FETCH cur INTO c_id,c_empname,c_job,c_salary;
        SELECT c_id,c_empname,c_job,c_salary;
    CLOSE cur;
END;

報錯:


image.png

錯誤原因:存儲過程中使用的變量done未聲明。

解決方案:
先對done變量進行聲明,后使用
修改上述存儲過程如下:

DROP PROCEDURE IF EXISTS pro_empIndepart;

CREATE PROCEDURE pro_empIndepart (IN empid INT)
    READS SQL DATA
BEGIN
        DECLARE  c_id INT;
    DECLARE  c_empname VARCHAR(50);
    DECLARE  c_job VARCHAR(50);
    DECLARE  c_salary INT;
    DECLARE done INT DEFAULT 0;
    DECLARE cur CURSOR for select  e.id,e.yuangongname,e.word,e.wage from emp e where  e.id =  empid;
        declare continue handler for not found set done = 1;
    
    OPEN cur;
        FETCH cur INTO c_id,c_empname,c_job,c_salary;
        SELECT c_id,c_empname,c_job,c_salary;
    CLOSE cur;
END;

調(diào)用存儲過程:

CALL pro_empIndepart(5)

返回結(jié)果:


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容