欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

mysql done_MySQL 获取游标结果报错:1193-Unknown system variable ‘done’

发布时间:2024/4/18 数据库 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 mysql done_MySQL 获取游标结果报错:1193-Unknown system variable ‘done’ 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

MySQL执行以下存储过程

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;

调用存储过程:

CALL pro_empIndepart(5)

返回结果:

image.png

总结

以上是生活随笔为你收集整理的mysql done_MySQL 获取游标结果报错:1193-Unknown system variable ‘done’的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。