Partie II
Programmation procédurale
236
© Éditions Eyrolles
Structure d’un sous-programme
Dans une procédure, comme dans une fonction, les déclarations des variables, curseurs et
exceptions suivent directement l’en-tête du bloc (après la directive BEGIN). La figure suivante
illustre la structure d’une spécification et d’un corps d’un sous-programme MySQL. Le bloc
d’instructions doit contenir au moins une instruction MySQL.
Exemples
Considérons la table Pilote. Nous allons écrire (dans la base bdsoutou) une fonction et
une procédure :
q
La fonction EffectifsHeure(comp,heures) devra renvoyer le nombre de pilotes
d’une compagnie donnée (premier paramètre) qui ont plus d’heures de vol que la valeur du
deuxième paramètre (si aucun pilote, retourne 0). Si aucune compagnie n’est passée en
paramètre (mettre NULL), le calcul inclut toutes les compagnies. Les éventuelles erreurs ne
sont pas encore traitées (compagnie de code inexistant, par exemple).
q
La procédure PlusExperimente(comp,nom,heures) doit retourner le nom et le
nombre d’heures de vol du pilote (par l’intermédiaire des deuxième et troisième paramètres) le plus expérimenté d’une compagnie donnée (premier paramètre). Si plusieurs pilotes ont la même expérience, un message d’erreur est affiché. Si aucune compagnie n’est
passée en paramètre (mettre NULL), la procédure retourne le nom du plus expérimenté et le
code de sa compagnie (par l’intermédiaire du premier paramètre).
Remarquez que la fonction aurait pu être programmée par une procédure ayant un troisième
paramètre de sortie.
Figure 7-1 Structure d’un sous-programme
CREATE { PROCEDURE | FUNCTION }
nomSousProgramme [(...) ] [RETURNS typeMSQL ]
BEGIN
[DECLARE déclaration ]; ...
instructions MySQL;
BEGIN
[DECLARE déclaration ];...
...
...
instructions MySQL;
END;
…
END;
$
Précédent

- 258/418

Suivant