Bonjour à tous, j'ai une erreur de syntaxe lors de la création d'une procédure stockée que je ne comprend pas vraiment. Pouvez-vous m'éclairer.
Ma procédure :
L'erreur obtenue au moment de l'exécution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 CREATE PROCEDURE curdemo() BEGIN DECLARE done INT DEFAULT 0; DECLARE a, d VARCHAR(30); DECLARE cur1 CURSOR FOR SELECT action_id, das_id FROM action; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; OPEN cur1; REPEAT FETCH cur1 INTO a, d; IF NOT done THEN IF d='das1' THEN UPDATE action SET das_id='das0' WHERE action_id=a; END IF; END IF; UNTIL done END REPEAT; CLOSE cur1; END
Lorsque je me contente de créer la procédure sans rien comme ci-dessous, elle se créée sans problèmes.Error
SQL query:
CREATE PROCEDURE curdemo( ) BEGIN DECLARE done INT DEFAULT 0;
MySQL said: Documentation
#1064 - 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 'INT DEFAULT 0' at line 3
Ma syntaxe a été copier l'aide pour les curseurs de la documentation MySql pour versions 5.0. J'avoue être un peu perdue.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CREATE PROCEDURE curdemo() BEGIN END
Version Mysql 5.0.45
Merci d'avance pour votre aide
Partager