0% ont trouvé ce document utile (0 vote)
45 vues24 pages

Cours-Introduction Au PL-SQL

Transféré par

farah baklouti
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
45 vues24 pages

Cours-Introduction Au PL-SQL

Transféré par

farah baklouti
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

1

Introduction au Langage PL/SQL


2

Caractéristiques du PL/SQL

 Un langage procédural qui étend SQL. Il est propre à Oracle


 Modulaire, grâce aux blocs, fonctions & procédures, ainsi que les
packages
 Déclaratif : déclaration de variables, constantes, exceptions, de
curseur.
 Fournit les structures itératives et conditionnelles
 Traitement des erreurs (routines ou définies par l’utilisateur)
 Portabilité vers n’importe quel environnement supportant Oracle
 Intégration : pas de problèmes d’intégration entre Oracle et les
environnements de développements
3

Conventions de programmation

 Conventions du code
 En majuscule
 Les commandes SQL (SELECT, FROM, WHERE etc.)
 Les mots clé PL/SQL (DECLARE, BEGIN, NUMBER etc.)
 En minuscule
 Les noms de variables PL/SQL
 Les noms de colonnes, tables, vues etc.
4

Conventions de programmation

 Conventions de nommage des variables


5

Structure d’un bloc PL/SQL

 Un bloc PL/SQL contient trois sections :


 Une section déclarative: optionnelle, contient les déclarations
des variables, constantes, curseurs, exceptions, etc. Commence
par le mot clé DECLARE
 Une section exécutable: obligatoire, contient les requêtes SQL
et les instructions PL/SQL. Commence par le mot BEGIN
 Une section de traitement d’erreurs : optionnelle, contient les
instructions à exécuter au cas où des erreurs se produisent.
Commence par le mot EXCEPTION
 À noter que le bloc se termine par le mot clé END
6

Structure d’un bloc PL/SQL

 Exemple de bloc PL/SQL

DECLARE
v_sal NUMBER;
BEGIN
SELECT sal INTO v_sal FROM emp
WHERE empno=9854;
EXCEPTION
WHEN NO_DATA_FOUND THEN

END;
/
7
Les structures de programme
PL/SQL
 Les blocs anonymes

 Les procédures et fonctions stockées

 Les procédures et fonctions d’application

 Les packages

 Les triggers (déclencheurs) de base de données

 Les triggers (déclencheurs) d’application


8

Les règles syntaxiques

 Un identifiant :
 Max de 30 caractères, doit débuter par une lettre.
 Ne doit pas être un mot réservé.
 Son nom doit être différent des noms de colonnes.

 Les chaînes de caractères et les dates constantes entre simples


quotes.
 Les commentaires sur plusieurs lignes doivent être inclus entre les
caractères " /* " et " */ "
 Les caractères "- -" sont utilisés pour mettre une seule ligne en
commentaire.
9
La base de données
exemple
10

Les types de variables

 Il existe deux types de variables qui fonctionnent sous PL/SQL


 Les variables PL/SQL
 Variable scalaire : contenant une valeur unique
 Variable composée : contenant plusieurs valeurs comme le
RECORD, le TABLE, le NESTED TABLE, le VARRAY
 Variable référence : variable qui pointe vers un type de
données
 LOB : variable localisateur d’objets volumineux tel que les
images et les vidéos
 Les variables non PL/SQL
 Les variables de substitution
 Les variables hôtes (globales)
11
Les types de données
scalaires
 Les principaux types de données scalaires
 Les types numériques
 INTEGER, POSITIVE
 PLS_INTEGER, BINARY_INTEGER
 NUMBER(n,d), DECIMAL, REAL
Les types chaine de caractère
 LONG, VARCHAR2(n)
 CHAR(n)
 Le type booléen
 BOOLEAN (true, false ou null)
 Le type date
 DATE
12

Les variables scalaires

 Déclaration et initialisation

variable_name [CONSTANT] datatype [NOT NULL] [:=|DEFAULT expr];

 datatype : le type de données de la variable, qui est soit


scalaire, composé, référence ou LOB.

 CONSTANT : contraint la variable à être une constante

 NOT NULL : ce mot clé contraint la variable à contenir une valeur.


 expr : valeur initiale d’une variable, peut être une valeur littérale,
une autre variable ou une expression impliquant des opérateurs et
des fonctions.
13

Les variables scalaires

 La déclaration de plusieurs variables sur la même ligne est interdite

 Affectation

 variable := expression;

 DEFAULT : contraint la variable à être une constante

 SELECT expression INTO variable FROM...

 Impossible d’affecter la valeur NULL à une variable déclarée NOT


NULL (l’erreur VALUE_ERROR est renvoyée)
 La contrainte NOT NULL doit être suivie par une initialisation
14

Les variables scalaires

 Le mot clé %TYPE déclare une variable ayant le même type d’une
autre variable ou d’une colonne d’une table ou vue existantes.

Code PL/SQL Commentaires


DECLARE v_job prend le type de la colonne
v_job emp.job%TYPE; job de la table emp.
v_prime NUMBER(5,2) := 500.50; v_prime est initialisée à 500.50
v_prime_min v_prime%TYPE := v_prime_min prend le type de la variable
v_prime*2; v_prime
BEGIN
SELECT job INTO v_job FROM emp
WHERE empno=9854;

15
Les variables composées –
le RECORD
 Le mot clé %ROWTYPE déclare une variable RECORD ayant la même
structure que l’enregistrement d’une table/vue.

Code PL/SQL Commentaires


DECLARE Emp_record prend la structure d’un
emp_record emp%ROWTYPE; enregistrement de la table emp.
v_sal NUMBER:=800;
BEGIN Accès aux attributs de l’enregistrement
emp_record.empno:=2564;
emp_record.sal:=v_sal+100;

16
Les variables composées –
le RECORD
 Le mot clé %ROWTYPE déclare une variable RECORD ayant la même
structure que l’enregistrement d’une table/vue.

Code PL/SQL Commentaires


DECLARE emp_record prend la structure d’un
emp_record emp%ROWTYPE; enregistrement de la table emp.
v_sal NUMBER:=800;
BEGIN Accès aux attributs de l’enregistrement
emp_record.empno:=2564;
emp_record.sal:=v_sal+100;

 À noter qu’avec la directive %ROWTYPE, les attributs n’héritent pas


la contrainte NOT NULL.
17
Les variables composées –
le RECORD
 Pour définir un enregistrement personnalisé, il faut déclarer un type
RECORD

 Ensuite, pour l’utiliser, il faut déclarer une variable avec le type


nomRecord
18
Les variables composées –
le type TABLE
 Le type TABLE permet la déclaration de tableaux dynamiques (sans
taille initiale fixe)
 Une variable de type TABLE inclut deux colonnes, une clé primaire
de type BINARY_INTEGER et une colonne de type scalaire ou RECORD.

Primary key Colonne


… …
1 Mohamed Toumi
2 Sami Tlili
3 Meriam Bouzid
… …
19
Les variables composées –
le type TABLE
 Le type TABLE est défini avec cette syntaxe

 La déclaration d’une variable se fait selon cette syntaxe


20
Les variables composées –
le type TABLE
 Il existe des procédures et des fonctions qui permettent de
manipuler les variables TABLE :
21

Les variables non-PL/SQL

 Les variables hôtes (dite aussi de session)


 C’est une variable définie dans l’environnement hôte du
programme PL/SQL (SQL*Plus, Forms Developer…)
 Sous SQL*Plus, l’utilisation d’une variable hôte se fait ainsi :
Instructions Commentaires
VARIABLE g_compteur NUMBER; Déclaration de la variable sous SQL*Plus
DECLARE
v_compt NUMBER := 99;
BEGIN
:g_compteur := v_compt+1; Manipulation de la variable (ajout de :)
END;
/
PRINT g_compteur; Affichage de la variable sous SQL*Plus
22

Les variables non-PL/SQL

 Les variables de substitution


 Une variable de substitution est définie sous SQL*Plus. Sa valeur est
saisie sous SQL*Plus, et est remplacée intégralement dans le bloc
L’utilisation d’une variable de substitution :
Instructions Commentaires
SET SERVEROUTPUT ON Nécessaire à l’affichage
ACCEPT s_nbr PROMPT ‘Saisir un Saisie de la variable de session s_nbr
entier’;
DECLARE
v_doub NUMBER;
BEGIN
v_doub := &s_nbr; Manipulation de la variable (ajout du &)
DBMS_OUTPUT.PUT_LINE(‘Le Affichage de la variable PL/SQL v_doub
résultat est ‘||v_doub);
END;
23
Les opérateurs et les
fonctions
Les opérateurs
Arithmétiques
+,-,*,/
Logiques
AND , OR, NOT
Concaténation
||
Comparaison
= , != , < , > , <= , >= , LIKE , BETWEEN , IS NULL , IN

Les fonctions
Disponibles dans les instructions PL/SQL
Toutes les fonctions de ligne (lower, substr, length, round,
add_months etc.)
24

Les blocs imbriqués

Blocs PL/SQL
DECLARE
var1
BEGIN

DECLARE
var2
BEGIN
… Portée
DECLARE de var1
var3 Portée
BEGIN Portée
de
… de var2
END; var3
END;

END;

Vous aimerez peut-être aussi