MySql提示Incorrect number of FETCH variables怎么解决
作者: 葛屹肃 | 日期: 2021-08-15 | 分类: 个人杂谈
这段时间有个项目使用MySQL,为了方便逻辑处理,写了几个存储过程,而今天修改一个时,在测试时提示:Incorrect number of FETCH variables的错误。
经常使用MySQL的朋友看到提示就知道问题,这就是经验。我算是MySQL小白,前不久才写了第一个MYSQL的存储过程,只好百度一下。
错误提示:Incorrect number of FETCH variables
中文翻译:获取变量的数量不正确
原因:游标select的字段数需要与fetch into的变量数一致
例子:
CREATE PROCEDURE PROC_TEST()
BEGIN
declare done int;
declare temp_program varchar(50);declare cur_qry cursor for
SELECT program,area FROM t_pb_info where state = 0;DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
open cur_qry;
inLoop:LOOP
FETCH cur_qry into temp_program;
IF done=1 THEN
LEAVE inLoop;
END IF;set temp_program = null;
END LOOP inLoop;
CLOSE cur_qry;
END
上述例子,游标声明SELECT了2个字段program,area,而fetch into只有一个temp_program变量,因此而报错,要么减少SELECT的字段,要么增加fetch into的变量。
文章链接:https://www.geyisu.com/2102.html