DECLARE done INT DEFAULT 0;
DECLARE cur2 cursor for SELECT periodid,name,periodtype from edm_period where projectid =p_projectid ;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
OPEN cur2;
lp1:LOOPFETCH cur2 INTO v_periodid,v_purname,v_periodtype;
IF done=1 THEN
LEAVE lp1;
END IF;
select max(periodseq) into v_maxseq from edm_form_status where projectid=p_projectid and periodid=v_periodid and formid=0;
set done=0;
end Loop lp1;
close cur2;
解决办法就是在每次循环执行结束时加上set done=0; 如上代码。