Extrait du cours le langage procédural PL/SQL
5.3 Constantes locales
La déclaration d’une constante est similaire a la déclaration d’une variable sauf que le mot cle CONSTANT doit suivre le nom de la ®variable ¯. Il faut immédiatement donner une valeur a la constante.
tax_rate CONSTANT NUMBER := 0.03;
5.4 Variables globales
Les variables globales sont denies de la meme maniére que des variables locales, mais elles sont denies en dehors de toute denition de procédure. Supposons que l’on veuille denir les variables g_order_num et g_recip_counter pour qu’elles soient accessibles depuis tous les sous-programmes du package. Cela peut se faire ainsi:
CREATE OR REPLACE PACKAGE BODY
order_total
AS
…
g_order_num NUMBER;
g_recip_counter BINARY_INTEGER;
…
PROCEDURE
…
Il faut noter que ces variables globales sont dénies dans la zone de spécication du corps du package pour éviter qu’elles ne soient ®vues par des applications qui appellent la procédure groupée order_total.
Si l’on utilise des noms de variables identiques a des noms de colonnes de la base de données, les résultats d’opérations SELECT ou UPDATE impliquant ces variables sont imprévisibles.
5.5 Mot-cle DEFAULT
Le mot-cle DEFAULT permet d’initialiser des variables sans utiliser l’operateur d’aectation comme dans l’exemple suivant :
merch_gross NUMBER DEFAULT 10.50;
On peut aussi utiliser le mot-cle DEFAULT pour initialiser les parametres d’un curseur dans un sous-programme ou des champs dans un enregistrement deni par l’utilisateur.
5.6 Attributs des variables et constantes
Les deux attributs des variables et constantes PL/SQL sont %TYPE et %ROWTYPE. L’attribut %TYPE permet de declarer des variables similaires a des colonnes de la base de donnees sans connaitre le type de la colonne.
merch_gross peut etre deni de la maniere suivante:
merch_gross line_item.merch_gross%TYPE;
La deffinition d’une variable de cette maniere permet de rendre effectifs des changements a la base de donnees lors de la prochaine compilation sans changer le code.
L’attribut %ROWTYPE permet de representer une ligne d’une table avec un type de donnee enregistrement qui masque les colonnes de la base de donnees. Considerons l’echantillon de donnees dans la table LINE_ITEM ci-dessous:
……..
Le langage procédural PL/SQL variables de procédures (256 KO) (Cours PDF)