Création de procédure impossible

Création de procédure impossible - SQL/NoSQL - Programmation

Marsh Posté le 26-05-2009 à 10:53:50    

Bonjour bonjour
Depuis ce matin je tente sous MySQL de faire une procédure, mais pour une raison qui m'échappe je n'ai que des erreurs ...

Citation :

(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 '' at line 3 )


 
Voici mon code

Code :
  1. CREATE procedure toto()
  2. BEGIN
  3. declare a int DEFAULT 1;
  4. END


 
Il ya quelque chose a activer?ou je me suis planté dans le code?
 
en vous remerciant par avance :hello:

Reply

Marsh Posté le 26-05-2009 à 10:53:50   

Reply

Marsh Posté le 26-05-2009 à 11:12:21    

ce serait pas DECLARE @a int default 1?
Et sans le "default 1"?

Reply

Marsh Posté le 26-05-2009 à 11:35:18    

Bonjour et merci
mais...avec le "@" et sans, avec le "default 1" et sans c'est la même erreur.
Je l'ai pas mal trituré et j'ai toujours l'erreur donc je me demande si ça vient pas d'autre part...Mais ou

Reply

Marsh Posté le 26-05-2009 à 11:44:35    

Essaie de déclarer ta variable autre chose que "a", c'est peut être un mot réservé.

Reply

Marsh Posté le 26-05-2009 à 13:15:20    

idem :(
non mais je commence à être persuadé que ça vient pas du code...

Reply

Marsh Posté le 26-05-2009 à 13:39:06    

essaye peut-etre de mettre une instruction dans ta procédure, en oracle par exemple on ne peut pas le faire, il faut au moins mettre "null;"

Reply

Marsh Posté le 26-05-2009 à 13:43:19    

a priori ca vient du delimiter.

 

tu es obligé de mettre un délimiteur après ton declare, mais tu ne peux pas utiliser ";" car du coup mysql croit que c'est la fin de ta procédure. du coup il faut redéfinir le délimiteur avec la commande "delimiter":

 
Code :
  1. DELIMITER ##
  2. CREATE procedure toto()
  3. BEGIN
  4. declare a int DEFAULT 1;
  5. END ##
 

http://bugs.mysql.com/bug.php?id=31358

Message cité 1 fois
Message édité par pataluc le 26-05-2009 à 13:45:17
Reply

Marsh Posté le 27-05-2009 à 10:10:59    

Bonjour,merci a vous deux mais...

pataluc a écrit :

a priori ca vient du delimiter.
 
tu es obligé de mettre un délimiteur après ton declare, mais tu ne peux pas utiliser ";" car du coup mysql croit que c'est la fin de ta procédure. du coup il faut redéfinir le délimiteur avec la commande "delimiter":
 

Code :
  1. DELIMITER ##
  2. CREATE procedure toto()
  3. BEGIN
  4. declare a int DEFAULT 1;
  5. END ##


 
http://bugs.mysql.com/bug.php?id=31358


Le delimiter passe bien mais après il y a toujours une erreur...
 

Citation :

#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 'procedure toto()
BEGIN
DECLARE i_done INT DEFAULT 0' at line 1


 
/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*
 

casimimir a écrit :

essaye peut-etre de mettre une instruction dans ta procédure, en oracle par exemple on ne peut pas le faire, il faut au moins mettre "null;"


J'ai essayé de changer. D'après les exemples c'est censé marcher avec un code lite comme celui ci. Merci tous de meme

Reply

Marsh Posté le 27-05-2009 à 15:23:27    

tu as essayé de passer quoi comme procédure? (il ya du i_done dans l'intitulé de l'erreur...)

Reply

Marsh Posté le 09-06-2009 à 09:12:59    

bonjour, désolé pour ma reponse tardive, je pensais etre abonné
j'ai essayé la procédure décrite dans le premier message+les conseils donnés par la suite

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed