Partie II
Programmation procédurale
254
© Éditions Eyrolles
Exceptions avec CONTINUE
Étudions à présent la clause CONTINUE de l’instruction DECLARE HANDLER.
Gestion de NOT FOUND
Le tableau suivant décrit la même procédure gérant l’erreur NOT FOUND. La procédure se
termine correctement si la requête retourne une seule ligne, mais pas lorsqu’elle en renvoie
plusieurs (erreur Result consisted of more than one row).
Gestion d’une erreur particulière
Le tableau suivant décrit la même procédure qui gère en plus l’erreur Result consisted
of more than one row. La procédure se termine correctement si la requête retourne une
seule ou plusieurs lignes.
Tableau 7-11 Exception NOT FOUND traitée avec CONTINUE
Code MySQL
Commentaires
CREATE PROCEDURE bdsoutou.procException1
(IN p_comp VARCHAR(4))
BEGIN
DECLARE flagNOTFOUND BOOLEAN DEFAULT 0;
DECLARE var1 VARCHAR(20);
Déclaration de la procédure et
des variables.
;
Bloc qui déclare l’exception.
SELECT nom INTO var1 FROM bdsoutou.Pilote
WHERE comp=p_comp;
IF flagNOTFOUND THEN
SELECT CONCAT('Il n''y a pas de pilote pour la
compagnie ',p_comp)
AS 'Resultat procException1';
ELSE
SELECT CONCAT('Le seul pilote de la compagnie ',
p_comp,' est ',var1)
AS 'Resultat procException1';
END IF;
Requête pouvant déclencher
l’exception prévue.
Test de gestion de l’erreur.
Affichage du résultat.
END;
Fin de la procédure.
Web
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET flagNOTFOUND :=1
Précédent

- 276/418

Suivant