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);发布于 2013-11-19 19:47:34
这是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是预期的out参数。您可以将var声明为变量并使用它,否则只需跳过我编写的声明行。
看看这个页面:How to get rid of "Error 1329: No data - zero rows fetched, selected, or processed",他也有同样的问题,只需在var中添加一条简单的select语句即可解决。
如果上面不起作用,试着在循环结束前添加这个。
SELECT 'var' INTO var;https://stackoverflow.com/questions/20070063
复制相似问题