日期:2014-05-16  浏览次数:20806 次

关于mysql游标取值为空的问题
我的存储过程如下:
delimiter $$
use heidunlog$$
drop procedure if exists sp_test$$
create procedure sp_test()
begin
  declare stop integer default 1;
  declare name varchar(50);
  declare sqlstr text;
  declare cur_1 cursor for select name from user;
  DECLARE CONTINUE HANDLER FOR not FOUND set stop=0;
  open cur_1;
  fetch cur_1 into name ;
  while stop<>0 do
  select name ;  
  fetch next from cur_1 into name ;
  end while;
  set name ='';
end$$
delimiter ;
存在的问题是取出来的tablename老是为空,可以明确的是游标有取到记录,因为stop不为0,循环次数与我的记录数一致
更奇怪的是,我如果把游标定义改成declare cur_1 cursor for select min(id) from user就可以取得到值。请问大家,为什么会有这种现象,我现在要取的是记录集中的name

------解决方案--------------------
你将NAME更名 OR 加``试试