© Éditions Eyrolles
237
chapitre n° 7
Programmation avancée
Une fonction
La création de la fonction est réalisée à l’aide du script suivant (EffectifsHeure.sql).
Notez que les deux paramètres d’entrée ne sont pas définis par la directive IN et que la clause
RETURN doit être présente en fin de codage.
BEGIN
DECLARE resultat SMALLINT;
IF (pcomp IS NULL) THEN
SELECT COUNT(*) INTO resultat FROM Pilote WHERE nbHVol > pheuresVol;
ELSE
SELECT COUNT(*) INTO resultat FROM Pilote WHERE nbHVol > pheuresVol
AND comp = pcomp;
END IF;
END;
Une procédure
La création de la procédure est réalisée à l’aide du script suivant (PlusExperimente.sql).
Notez les deux derniers paramètres de sortie définis par la directive OUT, et le premier servant
d’entrée ou de sortie avec la directive INOUT. On peut assimiler le passage d’un paramètre par
référence à l’utilisation de la directive INOUT.
Figure 7-2 Procédures
Pilote
brevet
nom
nbHVol comp
PL-1
Gilles Laborde
2450
AF
PL-2
Frédéric D'Almeyda
900
AF
PL-3
Florence Périssel
1000
SING
PL-4
Thierry Millan
2450
CAST
PL-5
Christine Royo
200
AF
PL-6
Aurélia Ente
2450
SING
EffectifsHeure(comp , heures );
(‘AF’, 300)
2
PlusExp erimente (comp, nom, heures );
(‘AF’, , )
(‘AF’, ‘ Gilles Laborde’ , 2450 )
function
procedure
Web
CREATE FUNCTION bdsoutou.EffectifsHeure(pcomp VARCHAR(4),
pheuresVol DECIMAL(7,2)) RETURNS SMALLINT
RETURN resultat;
237
chapitre n° 7
Programmation avancée
Une fonction
La création de la fonction est réalisée à l’aide du script suivant (EffectifsHeure.sql).
Notez que les deux paramètres d’entrée ne sont pas définis par la directive IN et que la clause
RETURN doit être présente en fin de codage.
BEGIN
DECLARE resultat SMALLINT;
IF (pcomp IS NULL) THEN
SELECT COUNT(*) INTO resultat FROM Pilote WHERE nbHVol > pheuresVol;
ELSE
SELECT COUNT(*) INTO resultat FROM Pilote WHERE nbHVol > pheuresVol
AND comp = pcomp;
END IF;
END;
Une procédure
La création de la procédure est réalisée à l’aide du script suivant (PlusExperimente.sql).
Notez les deux derniers paramètres de sortie définis par la directive OUT, et le premier servant
d’entrée ou de sortie avec la directive INOUT. On peut assimiler le passage d’un paramètre par
référence à l’utilisation de la directive INOUT.
Figure 7-2 Procédures
Pilote
brevet
nom
nbHVol comp
PL-1
Gilles Laborde
2450
AF
PL-2
Frédéric D'Almeyda
900
AF
PL-3
Florence Périssel
1000
SING
PL-4
Thierry Millan
2450
CAST
PL-5
Christine Royo
200
AF
PL-6
Aurélia Ente
2450
SING
EffectifsHeure(comp , heures );
(‘AF’, 300)
2
PlusExp erimente (comp, nom, heures );
(‘AF’, , )
(‘AF’, ‘ Gilles Laborde’ , 2450 )
function
procedure
Web
CREATE FUNCTION bdsoutou.EffectifsHeure(pcomp VARCHAR(4),
pheuresVol DECIMAL(7,2)) RETURNS SMALLINT
RETURN resultat;
