Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/04/2007, à 17:49

blt909

Pb avec procédures stockées MySQL

Boujour à tous,
j'ai migré dernièrement une BDD depuis Mysql Community sous Win2003 Server sur Dapper Drake LTS,
mais depuis toutes mes procédures plantent avec ce message d'erreur:

Error Code : 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 1

pourtant je n'ai rien changé d'une plateforme à l'autre ...
j'ajoute un exemple de procédure simple sur laquelle l'erreur s'est produite:

DELIMITER $$

DROP PROCEDURE IF EXISTS `erp2`.`add_tour`$$

CREATE DEFINER=`sebastien.coget`@`%` PROCEDURE `add_tour`()
BEGIN
        DECLARE done INT DEFAULT 0;
        declare xcodeclient varchar(6);
        declare xordresite tinyint;
        declare xt1 tinyint(1);
        declare xt2 tinyint(1);
        declare xt3 tinyint(1);
        declare xt4 tinyint(1);
        declare xta tinyint(1);
        declare xtb tinyint(1);
        declare xtc tinyint(1);
        declare xtville varchar(50);
	declare xadr1 varchar(50);
	declare xadr2 varchar(50);
	declare xadr4 varchar(50);
        declare xetab_id integer(10) default 0;
        declare xvill_id integer(10) default 0;
        DECLARE cur1 CURSOR FOR SELECT codeclient, ordresite, t1, t2, t3, t4, ta, tb, tc, tville, adr1, adr2, adr4
                                                        FROM groupegc_dev.clients  order by codeclient, ordresite;
        DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
        delete from erp2.ville;
        insert into erp2.ville (vill_lib) select distinct tville from groupegc_dev.clients;
        
        open cur1;
        REPEAT
        FETCH cur1 INTO xcodeclient, xordresite, xt1, xt2, xt3, xt4, xta, xtb, xtc, xtville, xadr1, xadr2, xadr4;
                IF NOT done THEN
                        select vill_id into xvill_id from erp2.ville where vill_lib=xtville;
			if xt1 is null then set xt1=0; end if;
			if xt2 is null then set xt2=0; end if;
			if xt3 is null then set xt3=0; end if;
			if xt4 is null then set xt4=0; end if;
			if xta is null then set xta=0; end if;
			if xtb is null then set xtb=0; end if;
			if xtc is null then set xtc=0; end if;
			/*select etab_id into xetab_id from erp2.etablissement where etab_numold=xcodeclient and (concat(etab_lib,etab_adr1)=concat(xadr1,xadr2) or etab_ordresite=xordresite);*/
                        insert into erp2.tournee_theorique (FKetab_id, FKvill_id, theo_t1, theo_t2, theo_t3, theo_t4, theo_ta, theo_tb, theo_tc, theo_ville, theo_numold, theo_ordresite) 
                                        values (xetab_id, xvill_id, xt1, xt2, xt3, xt4, xta, xtb, xtc, xtville, xcodeclient, xordresite);
                end if;
        UNTIL done END REPEAT;
        CLOSE cur1;
    END$$

DELIMITER ;

Cela vient-il de ma config serveur ou du code à votre avis?

Merci d'avance pour vos conseils.

Hors ligne