Bonjour,
Mon petit code pl sql (avec mysql) me fait une boucle infini (qd je fais call ma_procedure ca ne s'arrete pas ) :
Le code :
Code :
- DELIMITER $$
- DROP PROCEDURE IF EXISTS `liferay_ce606_solfea`.`remove_leading_slash` $$
- CREATE PROCEDURE `liferay_ce606_solfea`.`remove_leading_slash` ()
- BEGIN
- --debut code perso
- DECLARE done INT DEFAULT 0;
- DECLARE a INT(11);
- DECLARE b CHAR(255);
- DECLARE cur1 CURSOR FOR SELECT d.idFormData,d.value FROM solfea_form_data d WHERE d.value REGEXP '^/';
- DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
- OPEN cur1;
- REPEAT
- FETCH cur1 INTO a,b;
- IF NOT done THEN
- update solfea_form_data set value=SUBSTRING(b,1) where idFormData=a;
- END IF;
- UNTIL done END REPEAT;
- CLOSE cur1;
- --fin code perso
- END $$
- DELIMITER ;
|
Je n'ai codé que ce qui est en "--debut/fin code perso". Le reste, c'est le squelette généré par l'éditeur officiel "mysql browser".
Pouvez-vous me dire où est la boucle infinie sachant que la requête executée :
Code :
- SELECT d.idFormData,d.value FROM solfea_form_data d WHERE d.value REGEXP '^/';
|
renvoie 17 lignes (elle marche bien).
Merci
Message édité par Barnabe42 le 20-12-2011 à 18:21:49