PL-SQL 1
PL-SQL 1
PL-SQL 1
Procédural
Block Block Procedural
PL/SQL PL/SQL Statement
SQL Executor
SQL exécuteur
Oracle Server
6 Caractéristiques de PL/SQL
Structure de Bloc
Tout programme PL/SQL est écrit en blocs,
Les blocs peuvent aussi être imbriqués.
Chaque bloc est conçu pour une tâche particulière.
Variables et constantes
PL/SQL permet de déclarer des variables et des
constantes.
Les variables sont utilisées pour stocker des valeurs
temporairement.
7
Structures de contrôle
PL/SQL permet d’utiliser IF, la boucle FOR, la boucle
WHILE dans le bloc. Ces structures constituent une
importante extension du SQL au PL/SQL. Elle permettent
tout traitement de données en PL/SQL.
Gestion des exceptions
PL/SQL permet de détecter des erreurs et de les gérer.
Chaque fois qu'il y ait une erreur prédéfinie, PL/ SQL
soulève automatiquement une exception. Ces
exceptions peuvent être manipulées pour récupérer les
erreurs.
8 modularité
PL / SQL permet à un processus d'être divisés en différents
modules. Les sous-programmes appelés procédures et
fonctions peuvent être définies et appelées à l'aide d’un
nom. Ces sous-programmes peuvent également prendre
des paramètres.
curseurs
Un curseur est une zone SQL privée utilisée pour exécuter
des instructions SQL et stocker des informations de
traitement. PL/SQL utilise implicitement les curseurs pour
toutes les commandes DML et la commande SELECT qui
retourne une seule ligne. Il permet également de définir un
curseur explicite pour faire face aux multiples requêtes de
ligne.
9 Bloc PL/SQL
declare
v_sum number(5);
v_frais cours.frais%type;
v_dur cours.durée%type;
begin
select sum(amount) into v_sum from payement where rollno = 102;
-- récupérer les frais et la durée du cours Oracle
select frais, durée into v_frais, v_duration from cours
where ccode = ‘ora’;
...
end;
13
Blocs imbriqués
Il est possible de définir un bloc à l'intérieur d'un autre
bloc. Lorsque les blocs sont définis à l'intérieur de l'un
l'autre, ils sont dits imbriqués.
Ci-après un exemple de bloc imbriqué. Le bloc
principal contient une seule variable X et le bloc
imbriqué contient une seule variable Y.
declare
x number(5);
15
begin
-- mettre le code exécutable du bloc principal ici
declare /* début du bloc imbriqué */
y number(3);
begin
-- mettre le code exécutable du bloc imbriqué
exception
-- la gestion des exceptions pour le bloc imbriqué
end;
-- code de bloc principal se poursuit.
Exception
-- la gestion des exceptions pour le bloc principal
end;/
16
Portée et visibilité des variables
Il est possible
d'accéder à la
variable n
déclarée dans le
bloc externe
même si elle est
masquée en
utilisant l'étiquette
du bloc externe.
18
Étiquette d’un bloc