Unknown system variable 'FETCH_STATUS'DELIMITER $$DROP PROCEDURE IF EXISTS `zz`.`testloop`$$CREATE PROCEDURE `testloop`()
BEGIN DECLARE uname VARCHAR(200);
DECLARE id int;
DECLARE cur_rows cursor for (select id,name from test1 group by name having count(*) >1);
/*游标*/open cur_rows;
fetch cur_rows into id,uname;
WHILE @@FETCH_STATUS = 0
begin
select uname;fetch cur_rows into id,uname;end; CLOSE cur_rows;
DEALLOCATE cur_rows;
END$$DELIMITER ;
DECLARE done INT DEFAULT 0;DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
WHILE done=0 do
....
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE a CHAR(16);
DECLARE b,c INT;
DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1;
DECLARE cur2 CURSOR FOR SELECT i FROM test.t2;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN cur1;
OPEN cur2; REPEAT
FETCH cur1 INTO a, b;
FETCH cur2 INTO c;
IF NOT done THEN
IF b < c THEN
INSERT INTO test.t3 VALUES (a,b);
ELSE
INSERT INTO test.t3 VALUES (a,c);
END IF;
END IF;
UNTIL done END REPEAT; CLOSE cur1;
CLOSE cur2;
END
Variable or condition declaration after cursor or handler declaration
DELIMITER $$DROP PROCEDURE IF EXISTS `zz`.`testloop`$$CREATE PROCEDURE `testloop`()
BEGIN /*初始化变量 账户名*/
DECLARE uname VARCHAR(200);
/*初始化 id*/
DECLARE id int;
/*游标保存*/
DECLARE cur_rows cursor for (select id,name from test1 group by name having count(*) >1);
/*判断值*/
DECLARE done INT DEFAULT 0;
open cur_rows;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
fetch cur_rows into id,uname;
WHILE done = 0
begin
select uname;fetch cur_rows into id,uname;end; CLOSE cur_rows;
DEALLOCATE cur_rows;
END$$
DELIMITER ;
BEGIN DECLARE uname VARCHAR(200);
DECLARE id int;
DECLARE done INT DEFAULT 0;
DECLARE cur_rows cursor for (select id,name from test1 group by name having count(*) >1);
BEGIN DECLARE uname VARCHAR(200);
DECLARE id int;
DECLARE done INT DEFAULT 0;
DECLARE cur_rows cursor for (select id,name from test1 group by name having count(*) >1);
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
open cur_rows;
DELIMITER $$DROP PROCEDURE IF EXISTS `zz`.`testloop`$$CREATE PROCEDURE `testloop`()
BEGIN DECLARE uname VARCHAR(200);
DECLARE id int;
declare done int default 0;
DECLARE cur_rows cursor for (select id,name from test1 group by name having count(*) >1);
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
/*游标*/open cur_rows;
WHILE done=0 do
fetch cur_rows into id,uname;
select uname;
end while;
CLOSE cur_rows;
END$$
多谢 各位哈,这个能直接使的... (mysql 存储过程的语法写着很不舒服 - - )
多些各位帮忙 :)
感激不尽..