Bonjour à tous

J'ai mis au point une procédure stockée qui n'exécute pas normalement je comprend pas

Voici ce que je veux faire :

1 - Prendre une liste de compte
2 - Pour chaque compte :
a - Regrouper le montant par groupe
b - Mettre une valeur "TEST" pour un champ du groupe

Voici ma procédure :

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
 
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `MISE_AJOUR_TOUSLESCOMPTES`(IN `LibExercice` VARCHAR(255), OUT `MONTANT` BIGINT(8))
    NO SQL
    DETERMINISTIC
BEGIN
 
DECLARE LibCompte VARCHAR(255);
 
/*DECLARATION DE MON CURSEUR POUR LISTE MES COMPTES*/
DECLARE _curs CURSOR 
FOR SELECT MONCOMPTE.CODECOMPTE
FROM MONCOMPTE
WHERE (MONCOMPTE.CODECOMPTE NOT LIKE '%/%') 
AND (MONCOMPTE.NATURECOMPTE = 'Depenses') 
AND (MONCOMPTE.TITRECOMPTE = 'Rose') 
AND (MONCOMPTE.EXERCICECOMPTE = LibExercice);
 
 /*OUVERTURE DE MON CURSEUR*/
OPEN  _curs;
BEGIN
DECLARE _fin   INTEGER  DEFAULT 1;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET _fin = 0;
 
FETCH _curs INTO LibCompte; /*SELECTION DU COMPTE EN COURS*/
 
WHILE (_fin)
DO
/*POUR LE COMPTE ENCOURS REGROUPEMENT PAR SOMME*/ 
SELECT SUM(MONCOMPTE.MONTBUGCOURS) INTO COMPTE, MONTANT FROM  MONCOMPTE WHERE MONCOMPTE.GROUPECOMPTE=LibCompte;
 
/* MISE A JOUR DE LA VALEUR POUR LE COMPTE ENCOURS */
        IF MONTANT = 0 THEN 
        UPDATE MONCOMPTE SET MONCOMPTE.VAL_COMPTE='TEST' WHERE MONCOMPTE.CODECOMPTE=LibCompte ;
        ELSE
        UPDATE MONCOMPTE SET MONCOMPTE.VAL_COMPTE='' WHERE MONCOMPTE.CODECOMPTE=LibCompte;
	END IF ;
 
FETCH _curs INTO LibCompte;
END WHILE;
END;
CLOSE _curs;
 
END$$
DELIMITER ;

Normalement pour tous les comptes ou le montant =0 je dois avoir la valeur "TEST" dans mon champ VAL_COMPTE.

Mais à l'exécution de la procédure je n'ai aucun changement ?

j'ai besoin d'aiguillage

Merci à tous