Contenu | Rechercher | Menus

Annonce

Ubuntu-fr.org recrute toujours de nouveaux modérateurs, avec de l'expérience.

Ubuntu 16.04 LTS
Réservez vos DVD et clé USB Ubuntu-fr (premières livraisons mi-mai)

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

M.A.J. en cours du forum possibilité de bug, nous faisons le maximum pour les résoudre au plus vite

#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