La déclaration d'une variable locale se fait avec l'instruction DECLARE :
Code : SQL
DECLARE nom_variable type_variable [DEFAULT valeur_defaut];
Cette instruction doit se trouver au tout début du bloc d'instructions dans lequel la variable locale sera utilisée (donc directement
après le BEGIN).
On a donc une structure générale des blocs d'instructions qui se dégage :
Code : SQL
BEGIN
-- Déclarations (de variables locales par exemple)
-- Instructions (dont éventuels blocs d'instructions imbriqués)
END;
Tout comme pour les variables utilisateur, le nom des variables locales n'est pas sensible à la casse.
Si aucune valeur par défaut n'est précisée, la variable vaudra NULL tant que sa valeur n'est pas changée.
Pour changer la valeur d'une variable locale, on peut utiliser SET ou SELECT ... INTO.
Exemple : voici une procédure stockée qui donne la date d'aujourd'hui et de demain :
Code : SQL
DELIMITER |
CREATE PROCEDURE aujourdhui_demain ()
BEGIN
DECLARE v_date DATE DEFAULT CURRENT_DATE();
-- On
déclare une variable locale et on lui met une valeur par défaut
SELECT DATE_FORMAT(v_date, '%W %e %M %Y') AS Aujourdhui;
SET v_date = v_date + INTERVAL 1 DAY;
-- On
change la valeur de la variable locale
SELECT DATE_FORMAT(v_date, '%W %e %M %Y') AS Demain;
END|
DELIMITER ;
Testons-la :
Code : SQL
SET lc_time_names = 'fr_FR';
CALL aujourdhui_demain();
Aujourdhui
mardi 1 mai 2012
Partie 5 : Sécuriser et automatiser ses actions
276/414
www.openclassrooms.com
Précédent

- 276/413

Suivant