Académique Documents
Professionnel Documents
Culture Documents
1 : Le langage PL/SQL
I. INTRODUCTION
Le langage SQL est un langage « ensembliste », c'est-à-dire qu'il ne manipule qu'un ensemble de
données satisfaisant des critères de recherche. PL/SQL est un langage « procédural », il permet de
traiter de manière conditionnelle les données retournées par un ordre SQL. (Bizoï, 2007)
Le langage PL/SQL, acronyme de « Procedural Language extensions to SQL », comme son nom
l'indique, étend SQL en lui ajoutant des éléments, tels que :
- Les variables et les types.
- Les structures de contrôle et les boucles.
- Les procédures et les fonctions.
- Les types d'objets et les méthodes.
Remarques : Le langage PL/SQL peut contenir les instructions SQL de type Langage de Manipulation de
Données, mais il ne peut comporter aucune instruction du Langage de Définition de Données.
7
Chap. 1 : Le langage PL/SQL
Chaque variable ou constante utilisée dans un bloc PL/SQL, possède un type de données.
PL/SQL offre deux variétés de types de données prédéfinies : scalaire et composé.
Les types scalaires :
Binary_integer entiers
Number numérique
Positive entiers positifs
Natural entiers naturels
Decimal, float, integer, real sous-types de number
Char chaîne de caractères à taille fixe allant jusqu’à 32 767 caractère (au
lieu de 255 dans la définition des colonnes des tables)
Varchar2 chaîne de caractères de longueur variable allant jusqu’à 32 767 (au
lieu de 2000 dans la définition des colonnes des tables)
Boolean booléen ses valeurs possibles sont TRUE, FALSE, NULL
Date type date d’Oracle
Rowid type interne à Oracle composé de 6 octets qui permet d’identifier une
ligne unique d’une table et d’offrir un accès rapide aux données.
La déclaration d'une variable consiste à allouer un espace pour stocker et modifier une valeur.
Elle est typée et peut recevoir une valeur par défaut et/ou un statut NOT NULL.
Une constante est par contre, ne peut pas être modifié par l'utilisateur.
III.2.1 Déclaration
Les variables se définissent dans la partie DECLARE, du bloc PL/SQL en utilisant la syntaxe suivante :
Syntaxe :
8
Chap. 1 : Le langage PL/SQL
nomvariable [CONSTANT]
{type | variable%TYPE | colonne_de_table.%ROWTYPE}
[NOT NULL]
[{ :=|DEFAULT} expression PL/SQL]
Remarques :
L'attribut CONSTANT permet de figer l'affectation d'une variable.
L'attribut Not NULL rend obligatoire d'initialiser la variable lors de sa définition.
On peut faire référence à une colonne d'une table par la déclaration :
nom_variable TABLE.COLONNE%TYPE
On peut faire référence à une ligne d'une table par la déclaration :
nom_variable TABLE%ROWTYPE
On peut faire référence à une variable précédemment définie par l'instruction :
nom_variable Pnom_variable%TYPE
L'initialisation d'une variable se fait par l'opérateur « := » suivi :
- d'une constante,
- d'une expression PL/SQL,
- d'une fonction PL/SQL.
Les variables peuvent également être définies dans l'environnement extérieur au bloc PL/SQL par
exemple comme des champs de l'écran en Form Builder. Ces variables seront utilisées préfixées de « : ».
Exemples de déclaration de variables :
Total NUMBER(9,3);
Nom CHAR(4) := ‘ISET’;
Longeur NUMBER NOT NULL := LENGTH (Nom)*2;
Date_Création DATE;
Numéro EMPLOYE.EMPNO%TYPE;
Dpt DEPARTEMENT%ROWTYPE;
Prénom Nom%TYPE;
Pi CONSTANT NUMBER:= 3.14;
Les tableaux sont conçus comme les tables de la base de données. Ils possèdent une clé primaire
(index) pour accéder aux lignes du tableau.
9
Chap. 1 : Le langage PL/SQL
Un tableau, comme une table, ne possède pas de limite de taille. De cette façon, le nombre d'éléments
d'un tableau va croître dynamiquement.
10
Chap. 1 : Le langage PL/SQL
11