Formation PUB200 : MySQL, 2018 Les procédures et fonctions stockées

15.23 Les valeurs de retour


Définition de la valeur de retour dans la fonction stockée

Les fonctions ont par définition une valeur de retour. Leur déclaration doit se terminer par le mot-clé RETURNS (remarquez le S) suivi du type de la valeur de retour.

Le code de la fonction quant à lui doit contenir la commande RETURN (cette fois, pas de S) suivie de la valeur de retour.

Attention : si la valeur de retour est une valeur tirée d’une commande SELECT, la commande SELECT sera entre parenthèses.

Dans cet exemple, on calcule le salaire horaire d'un mécanicien en tenant compte qu'un mécanicien travaille 2000 heures par année.

Ex :

MySQL

CREATE FUNCTION salaire_horaire(p_id INT) RETURNS DECIMAL(5,2) READS SQL DATA

BEGIN

   -- (entête standard)

   DECLARE salaire DECIMAL(5,2);

   SELECT salaire/2000 INTO salaire FROM mecaniciens WHERE id = p_id;

   RETURN salaire;

END!!

ou

MySQL

CREATE FUNCTION salaire_horaire(p_id INT) RETURNS DECIMAL(5,2) READS SQL DATA

BEGIN

   -- (entête standard)

   RETURN (SELECT salaire/2000 FROM mecaniciens WHERE id = p_id);

END!!

Appel de la fonction stockée

Il est possible d'appeler la fonction stockée en lui passant une seule valeur en paramètre. Dans cet exemple, on affichera le salaire du mécanicien numéro 2 :

MySQL

Ex : SELECT salaire_horaire(2);

Il est également possible de travailler avec une série de valeurs tirées d'une table. On pourra alors passer le nom d'un champ comme paramètre.

Dans cet exemple, la fonction stockée sera exécutée plusieurs fois, une fois pour chacun des enregistrements de la table :

MySQL

Ex : SELECT salaire_horaire(id) FROM mecaniciens;

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre