我初学啊,找了半天不知道是什么错误,帮我看看,谢谢
mysql> CREATE PROCEDURE p25(OUT return_val INT)
    -> BEGIN
    ->  DECLARE a,b INT;
    ->  DECLARE cur_1 CURSOR FOR SELECT s1 FROM t;
    ->  DECALRE CONTINUE HANDLER FOR NOT FOUND;
    ->   SET b=1;
    ->  OPEN cur_1;
    ->  REPEAT
    ->    FETCH cur_1 INTO a;
    ->    UNTIL b=1
    ->  END REPEAT;
    ->  CLOSE cur_1;
    ->  SET return_val=a;
    -> END;//
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'CONTI
NUE HANDLER FOR NOT FOUND;
  SET b=1;
 OPEN cur_1;
 REPEAT
   FETCH cur_1 I' at line 5

解决方案 »

  1.   

    我上面写错了,NOT FOUND 那里应该没有分号
    但还是一样要报错,不知道为什么
      

  2.   


    delimiter ||
    CREATE   PROCEDURE   p25(OUT   return_val   INT)
      BEGIN
        DECLARE   a,b   INT;
        DECLARE   cur_1   CURSOR   FOR   SELECT   s1   FROM   t;
        DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET b = 1;
        OPEN cur_1;
        REPEAT
            FETCH   cur_1   INTO   a;
            UNTIL   b=1  END   REPEAT;
        CLOSE   cur_1;
        SET   return_val=a;
      END||
      delimiter ;