2017-03-20 9 views
-2

テーブルは以下のように定義されました: enter image description hereMysqlでSQLステートメント 'declare'を実行した後にエラーが返されるのはなぜですか?

私は「宣言」を使用して変数を宣言しようとしたが、それは常にruturnエラーと私は理由を知りません。

コード:

mysql> DELEMITER // 
mysql> CREATE PROCEDURE emp_age_count(IN age1 int,IN age2 int,OUT count INT) 
     -> BEGIN 
     -> DECLARE temp FLOAT; 
     -> DECLARE emp_age CURSOR FOR SELECT empage FROM emp; 
     -> DECLARE EXIT HANDLER FOR NOT FOUND 
     -> CLOSE emp_age; 
     -> SET @sum=0; 
     -> SELECT COUNT(*) INTO count FROM emp 
     -> WHERE empage>age1 AND empage<age2; 
     -> OPEN emp_age; 
     -> REPEAT 
     -> FETCH emp_age INTO temp; 
     -> IF temp>age1 AND temp<age2; 
     -> THEN SET @[email protected]+temp; 
     -> END IF; 
     -> UNTIL 0 END REPEAT; 
     -> CLOSE emp_age; 
     -> 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 '; 
    THEN SET @[email protected]+temp; 
    END IF; 
    UNTIL 0 END REPEAT; 
    CLOSE emp_age; 
    END' at line 13 
+2

エラーの終わりを示します。最初の 'if'行の最後に'; 'を使用しています –

+0

' DELEMITER '?この実際のコードですか? –

答えて

1

削除してください "と。"構文は、変数の宣言にされていない、間違っているところそれがあるべき

条件「が」

IF (temp>age1 AND temp<age2) 
THEN 
SET @[email protected]+temp; 
END IF; 
関連する問題