delimiter ;;
create procedure cd3(out var int)
begin
declare finished int default 0;
declare cur cursor for select id from a;
declare continue handler for not found set finished=1;
open cur;
curloop:loop
fetch cur into var;
if finished then
leave curloop;
end if;
end loop curloop;
close cur;
end;;
call cd3(@var);
最佳答案
这是 MySQL 提供的警告。它们可能有点令人困惑,我建议您仔细阅读:请参阅 http://dev.mysql.com/doc/refman/5./en/show-warnings.html
我会改用这种方法
declare v_var VARCHAR(200); <-- if that whats it expected to be
open cur;
-- create a loop
repeat_cur: LOOP
FETCH cur INTO var;
-- checks if it is done
if finished then
LEAVE repeat_cur;
end if;
// DO THE WORK
END LOOP;
close cur;
我不确定,因为 var 是预期的输出参数。您可以将 var
声明为变量并使用它,否则只需跳过我编写的声明行。
查看此页面:How to get rid of "Error 1329: No data - zero rows fetched, selected, or processed" ,他也遇到了同样的问题,通过在var中添加一个简单的select语句解决了。
如果上述不起作用,请尝试在循环结束之前添加此内容。
SELECT 'var' INTO var;
关于mysql - 警告 1329 未获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20070063/