Chap1 PLSQL Intro
Chap1 PLSQL Intro
Chap1 PLSQL Intro
Procedural Language /
Structured Query
Language
(PL/SQL)
1 © Olfa DRIDI
PL/SQL
Plan
• Exploitation des requêtes SQL
• Curseurs
• Exceptions
• Procédures & fonctions
• Triggers
©
Le langage PL/SQL
Exploitation des
requêtes SQL
© Olfa DRIDI
PL/SQL
Le langage PL/SQL
Il offre :
Des extensions procédurales du langage SQL (il utilise les blocs SQL,
exécute les procédures stockées, gère des erreurs, optimise l’exécution
des requêtes, etc.).
Une portabilité entre les plateformes et les produits.
La prise en charge de la programmation orientée objet.
©
PL/SQL
Objets PL/SQL
• Il existe de nombreux types d'objet de base de données
PL/SQL :
• Package
• Corps du package
• Procédure
• Fonction
• Déclencheur
• La définition de ces objets se base sur la notion de bloc
PL/SQL
5 ©
PL/SQL
6 ©
PL/SQL
7 ©
PL/SQL
• Affectation:
• Variable := Expression
• Par le directive DEFAULT
• Par la directive INTO d’une requête
9 ©
PL/SQL
10 ©
PL/SQL
11 ©
PL/SQL
• Exemple 1
12 ©
PL/SQL
13 ©
PL/SQL
• Exemple:
14 ©
PL/SQL
15 ©
PL/SQL
16 ©
PL/SQL
17 ©
PL/SQL
18 ©
PL/SQL
©
PL/SQL
Traitements conditionnels
Exécution d’instructions en fonction du résultat d’une
condition
Règles
Dès que l’une des conditions est vraie, exécution du
traitement qui suit le THEN
Si aucune condition n’est vraie, exécution du traitement
ELSE
Seules les clauses IF, THEN, END IF sont obligatoires
©
PL/SQL
CASE variable
END CASE;
Michel Tuffery 21
©
PL/SQL
Structure itérative
LOOP
• LOOP instructions;
EXIT WHEN (condition);
END LOOP;
Michel Tuffery 22
©
PL/SQL
23 ©
PL/SQL
©
PL/SQL
©
PL/SQL
Package DBMS_OUTPUT
• Le package DBMS_OUTPUT permet d’afficher des messages à
partir des blocs PL/SQL. Il assure la gestion des
entrées/sorties de blocs ou sous-programmes PL/SQL.
• PUT: permet d'ajouter des informations dans la ligne en cours du
tampon.
• NEW_LINE: écriture du caractère fin de ligne.
• PUT_LINE: PUT + NEW_LINE.
• GET_LINE: récupérer la dernière ligne qui existe dans le buffer
pour l’utiliser dans le bloc PL/SQL.
• GET_LINES: récupérer plusieurs lignes du buffer.
• DISABLE/ ENABLE: activer ou désactiver l’utilisation du package
26 ©
Les curseurs
27 © Olfa DRIDI
PL/SQL
©
PL/SQL
Exemple
DECLARE
CURSOR dept_10 IS
SELECT NomEmp, Sal
FROM employe
WHERE Numdept=10
ORDER BY Sal;
BEGIN
...;
...;
END;
©
PL/SQL
30 ©
PL/SQL
Syntaxe
OPEN nom_curseur;
©
PL/SQL
Syntaxe
FETCH nom_curseur INTO liste_variables;
©
PL/SQL
Syntaxe
CLOSE nom_curseur;
©
PL/SQL
35 ©
PL/SQL
Simplification d’écriture
Déclaration :
nom_ligne nom_curseur%ROWTYPE
Type Numérique
o %ROWCOUNT le nombre de lignes déjà ramenées
©
PL/SQL
Curseurs paramétrés
Un curseur paramétré peut servir plusieurs fois avec des
valeurs des paramètres différentes
On doit fermer le curseur entre chaque utilisation de
paramètres différents (sauf si on utilise « for » qui ferme
automatiquement le curseur)
Permet de paramétrer la requête sur laquelle porte le
curseur
Syntaxe :
DECLARE
CURSOR nom_curseur (p1 type, p2 type,…) IS requête
BEGIN
nom_curseur(valeur1, valeur2 ,…);
©
PL/SQL
© Olfa DRIDI