一个存储过程中FETCH_STATUS有关问题?

一个存储过程中FETCH_STATUS问题????

[code=SQL][/code]delimiter //

drop FUNCTION if exists tests//

create FUNCTION tests() RETURNS varchar(30)

BEGIN

declare st1 VARCHAR(30) default ‘0’; 

declare st2 VARCHAR(30) default ‘0’;

declare st3 VARCHAR(30) default ‘0’;

declare cursor1 cursor for select address,city from persons;

FETCH next from cursor1 into st2,st3;

 while @@FETCH_STATUS = 0 DO

  SET st1 = CONCAT (st2,st3);

  end while;

close cursor1;  

RETURN st1;

END //

deallocate cursor1;

delimiter ;

#运行提示unknown system variable FETCH_STATUS 

#以上是mysql语句!



楼主可能参考一下MYSQL官方免费手册中的例子如下。

CREATE PROCEDURE curdemo()

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

一个存储过程中FETCH_STATUS有关问题?

相关文章:

你感兴趣的文章:

标签云: