cs_bendji
Messages postés6Date d'inscriptionvendredi 27 octobre 2006StatutMembreDernière intervention26 mai 2008
-
25 mai 2008 à 15:48
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
26 mai 2008 à 23:23
bonjour à tous
j'avais crée une procedure stockée dans la version antérieure de mysql qui fonctionnait bien.Depuis que j'ai télécharger une nouvelle version, j'ai essayé d'importer ma procedure, je reçois toujours des messages d'erreur:
#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 'in idchev INTEGER)
voici la procedure en question (fonction)
CREATE DEFINER=`root`@`localhost` FUNCTION `calculgain`(p_tqq BOOL,p_alloc DOUBLE,p_rang INT) RETURNS double
begin
declare gain DOUBLE;
declare v_tqq BOOL;
declare v_alloc DOUBLE;
declare v_rang INT;
set v_tqq=p_tqq;
set v_alloc=p_alloc;
set v_rang=P_rang;
if(v_tqq) then
case(v_rang)
when 1 then set gain=v_alloc*47/100;
when 2 then set gain=v_alloc*19/100;
when 3 then set gain=v_alloc*14/100;
when 4 then set gain=v_alloc*9/100;
when 5 then set gain=v_alloc*5.5/100;
when 6 then set gain=v_alloc*3.5/100;
when 7 then set gain=v_alloc*2/100;
else set gain=v_alloc*0/100;
end case;
else
case(v_rang)
when 1 then set gain=v_alloc*50/100;
when 2 then set gain=v_alloc*20/100;
when 3 then set gain=v_alloc*15/100;
when 4 then set gain=v_alloc*10/100;
when 5 then set gain=v_alloc*5/100;
else set gain=v_alloc*0/100;
end case;
end if;
return gain;
end
si quelqu'un peut m'aider... je galère depuis un moment. merci d'avance
cs_bendji
Messages postés6Date d'inscriptionvendredi 27 octobre 2006StatutMembreDernière intervention26 mai 2008 25 mai 2008 à 20:15
sibendji
Excusez-moi , je crois que j'ai la tête en bouillie: c'était le même genre de réponse à un autre bout de code . le vrai message d'erreur est ci-dessous
#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 '' at line 3
cs_bendji
Messages postés6Date d'inscriptionvendredi 27 octobre 2006StatutMembreDernière intervention26 mai 2008 25 mai 2008 à 21:26
sibendji
je viens d'exécuter la requête et voici de nouveau le message d'erreur:
#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 '' at line 3
la ligne 3 la voici:
CREATE FUNCTION calculgain(p_tqq BOOL,p_alloc DOUBLE,p_rang INT) RETURNS double
begin
declare gain DOUBLE;// la ligne 3
declare v_tqq BOOL;
declare v_alloc DOUBLE;
declare v_rang INT;
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 26 mai 2008 à 19:07
Hello,
au vu du message, je doute que le problème vienne de cette procédure stockée. Mysql te parle d'une chaîne : ''
et il n'y a pas ce genre de chaîne dans ta procédure stockée.
cs_bendji
Messages postés6Date d'inscriptionvendredi 27 octobre 2006StatutMembreDernière intervention26 mai 2008 26 mai 2008 à 23:15
sibendji
Je pense aussi que le problème vient de la mise à jour de MySQL, car cette procedure fonctionnait normalement avant que je ne télécharge la version récente de MySQL...
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 26 mai 2008 à 23:23
Ce n'est pas ce que j'ai dit : l'erreur que te donne mysql ne correspond à rien qui soit présent dans ta procédure stockée. A mon avis, ce n'est pas elle qui provoque cette erreur mais une autre requête/procédure.