Vous êtes sur la page 1sur 2

INTRODUCTION AU LANGAGE PL /SQL

SGBD-ORACLE
O. El Beqqali

Le langage PL/SQL (Procedural Language /SQL) est une extension du langage SQL qui offre un
environnement procédural au langage SQL. Les fonctionnalités de PL/SQL sont les suivantes :
- Définition de variables
- Traitements conditionnels
- Traitements répétitifs
- Traitements des curseurs
- Traitements des erreurs
Les programmes PL/SQL sont organisés et sont interprétés en blocs. Un bloc est un ensemble de
commandes, il est structuré en trois sections comme le montre le schéma suivant :

- - Bloc PL/SQL :
DECLARE
déclaration de variables et de curseurs
______ ; Section facultative
BEGIN
bloc d'instructions PL/SQL et SQL
______ ; Section obligatoire
EXCEPTION
traitement des erreurs Section facultative
END;
- - Fin du bloc PL/SQL
-
- - autres commandes SQL pour sortir les résultats

Gestion des données :


Les variables permettent de stocker des résultats de requête pour une utilisation ultérieure :
-Variable de type SQL :
nom_variable nom_type
où nom_type peut être : CHAR, NUMBER, DATE, VARCHAR2

-Variable faisant référence au dictionnaire de données :


nom_variable nom_table.colonne%TYPE (prend le même type que la colonne)
nom_variable nom_table%ROWTYPE (prend la même structure que la table)

Instructions de contrôle :
Structure alternative : exécution d’une séquence d’instructions sous certaines conditions
IF condition THEN
Instruction,…
[ELSE instruction ;…]
END IF ;

Structures répétitives : répète indéfiniment une séquence d’instructions


-LOOP
LOOP
Instruction ;…
END LOOP ;
Il est possible de ‘sortir’ de la boucle par exécution de l’instruction EXIT.
-FOR
FOR variable_indice IN [REVERSE] valeur_début..valeur_fin
LOOP
Instruction;…
END LOOP ;
-WHILE
WHILE condition
LOOP
Instruction ;…
END LOOP ;
Curseurs
Le curseur est une zone de travail de l’environnement utilisateur qui contient des informations
permettant l’exécution d’un ordre SQL, il est utilisé de la manière suivante :
CURSOR nom_curseur IS requête
CURSOR nom_curseur (nom_paramètre type [ := valeur par défaut] [,….]) IS requête
OPEN nom_curseur ou OPEN nom_curseur (paramètres effectifs) : ouverture du curseur
CLOSE nom_curseur : fermeture du curseur
FETCH nom_curseur INTO liste_variables : traitement de la ligne courante d’une requête SQL
Quatre attributs sont rattachés à chaque curseur :
- %FOUND : vrai si exécution correcte de l’ordre SQL
- %NOTFOUND : vrai si exécution incorrecte de l’ordre SQL
- %ISOPEN : vrai si curseur ouvert
- %ROWCOUNT : nombre de lignes traitées par l’ordre SQL , évolue à chaque ligne distribuée.
Exception
La procédure de traitement de l’erreur se définit dans la section EXCEPTION placée en fin de la
section BEGIN..END.
EXCEPTION
WHEN nom_erreur THEN
Traitement de l’erreur
END ;
La section EXCEPTION peut contenir autant de procédures ‘WHEN…..traitement d’erreur’
_______________________
.
TRIGGERS
Les déclencheurs (Triggers) sont des procédures stockées appartenant à une table précise et
s'exécutant lorsqu'une action spécifique se produit sur la table concernée. Le déclenchement d'une telle
procédure s'effectue suite à une instruction de manipulation de données comme INSERT, DELETE ou
UPDATE.
Syntaxe :

CREATE [ OR REPLACE ] TRIGGER propriétaire.nom_déclencheur


AFTER | BEFORE { [ INSERT [ OR DELETE
[ OR UPDATE OF nom_colonne,...,nom_colonneN ] ] ] }
ON propriétaire.nom_table
FOR EACH ROW [WHEN (condition)];

La clause BEFORE indique que le déclencheur doit être lancé avant l'exécution de l'événement. La
clause AFTER indique que le déclencheur doit être lancé après l'exécution de l'événement.

Vous aimerez peut-être aussi