0% ont trouvé ce document utile (0 vote)
50 vues27 pages

Introduction à PL/SQL : Concepts Clés

Ce document introduit le langage PL/SQL. Il décrit les caractéristiques du langage comme étant une extension du langage SQL avec des fonctionnalités de programmation comme les variables, les procédures et la gestion des erreurs. Le document présente également la structure des blocs PL/SQL ainsi que les instructions et structures de contrôle du langage.

Transféré par

Mohamed Lahmer
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 PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
50 vues27 pages

Introduction à PL/SQL : Concepts Clés

Ce document introduit le langage PL/SQL. Il décrit les caractéristiques du langage comme étant une extension du langage SQL avec des fonctionnalités de programmation comme les variables, les procédures et la gestion des erreurs. Le document présente également la structure des blocs PL/SQL ainsi que les instructions et structures de contrôle du langage.

Transféré par

Mohamed Lahmer
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 PDF, TXT ou lisez en ligne sur Scribd

PL/SQL: Introduction

• Langage procédural;
• Extension du langage SQL;
• Possède des caractéristiques propres aux langages de
programmation:
- Déclaration des variables et des constantes;
- Définition de sous-programmes;
- Gestion des erreurs à l’exécution.
• Permet d’inclure des instructions SQL pour la
manipulation et l’interrogation des données.
 Avantages:

• Programmation modulaire: blocs;

• Portabilité;

• Déclaration des var, const;

• Structures de contrôle;

• Gestion des erreurs.

 Inconvénients:

• Pas d’instructions du LDD.


Programme PL/SQL
 Structure d’un bloc PL/SQL:
• PL/SQL n’interprète pas une instruction mais un bloc;
DECLARE (opt)
const, var, curseurs, exceptionsdéfinis par l’util
BEGIN (obl)
Instructions SQL, PL/SQL
EXCEPTION (opt)
Actions en cas d’erreurs
END;
DECLARE
nom_var type ;
BEGIN
SELECT non_col
INTO nom_var
FROM nom_table ;
Traitements utilisant nom_var … ;
EXCEPTION
WHEN nom_exception THEN actions … ;
END;
• Les var sont utilisées pour:
- Stocker temporairement des données;
- Manipuler des valeurs stockées;
- Réutiliser plusieurs fois les mêmes données.
 Déclarations PL/SQL:
• Entre DECLARE …et…. BEGIN
• identif [Constant] type [Not Null] [:= ou default
expr];
• dat_naiss DATE ;
• compteur INTEGER := 0 ;
 Type de données:
• Types simples:
Number (Integer, Real, Decimal, Float)
Char: chaîne de caract de longueur fixe
Varchar2: chaîne de caract de longueur variable
Boolean
Date
Binary_Integer
• Types composés:

Record: Type nom_type IS RECORD (var1 type,


var2 type, …);

Table: Type nom_type TABLE OF type index by


binary_integer;

• Autres:
Type d’une autre var: nomVar2 nomVar1%Type

Type d’un tuple d’1 table: nomvar nom_tab%Rowtype


 Règles pour la déclaration de var:
• déclarer dans la section Declare avant l’utilisation dans
le bloc;
• la déclaration d’1 var ne peut faire référence qu’à des
var déclarées antérieurement;
• Une var non initialisée contient aut la valeur Null;
• Si on utilise Not Null, il faut initialiser la var;
• Le mot Constant doit précéder le type;
• Une constante doit être initialisée à la création;
• Règles pour l’identificateur:
• Exples:
somme Number(6,3);
fonction Char (15) := ‘chef de service’;
nom fonction%Type;
num [Link]%Type;
cl Client%Rowtype;
EtCiv char(1) Not Null:= ‘C’;
Pi constant number:= 3.14;
Les Instructions
• Sur plusieurs lignes, mais les mots clés ne doivent pas être
coupés;
• les var peuvent être séparées par:
- des espaces,
- des délimiteurs (+, -, * …, /*, */),
- des identif,
- des valeurs: caract et dates entre ‘ ‘,
- des commentaires: -- ou /* …. */ .
 Les opérateurs:
• arithmétiques, logiques, de concaténation et des ( );
• traités en fonction de leurs priorités: **, not, *, /, +, -,
||, =, != <=, >=, like, in, between, and, or, …
 Instructions de base:
• Affectation:
- id := expr; v_nom:= ‘ali’; v_datNaiss:= ‘30-01-80’ ;
- valeur demandée à l’utilisateur:
ACCEPT nomVar1 PROMPT ‘message …’
DECLARE nomVar2 type := & nomVar1;
• Affichage:
- variable hôte (non PL/SQL):
VARIABLE nomVar1 type
ACCEPT …
DECLARE
….
BEGIN

:nomVar1:= …
END;
PRINT nomVar1;
- commande DBMS_OUTPUT.PUT_LINE

SET SERVEROUTPUT ON

ACCEPT …

DECLARE

DBMS_OUTPUT.PUT_LINE (‘message …’ || nomVar ||…)

END;
VARIABLE salmens NUMBER
ACCEPT salAn PROMT ‘Donner sal annuel:’
DECLARE
v_sal number (9,3) := &salAn;
BEGIN
: salmens := v_sal/12;
END;
PRINT salmens
SET SERVEROUTPUT ON
ACCEPT salAn PROMT ‘Donner sal annuel:’
DECLARE
v_sal number (9,3) := &salAn;
BEGIN
: salmens := v_sal/12;
DBMS_OUTPUT.PUT_LINE (‘sal mensuel =’ || v_sal);
END;
 Utilisation de fonctions:
• Fonctions SQL (ceil(n), floor(n), sqrt(n), lower(ch),
upper(ch), ltrim(ch,n), sysdate, to_date(ch), NVL(x,val)
next_day(date), to_number(ch), …;
• Pas de fonctions de groupe (AVG, SUM, COUNT, ….);
• Ex:
- V_nom := Upper(V_nom);
- V_date := to_date(‘01 Janvier 2004’, ‘dd month yyyy’);
 Instructions standard SQL:

• Select

• Insert

• Update

• Delete
 Blocs imbriqués et portée des variables:

• un bloc imbriqué est une instruction;

• Diviser la partie exécutable d’un bloc en un ensemble de

blocs plus petits;

• Portée: un identifiant est visible dans:

- Le bloc dans lequel il est déclaré;

- Tous les blocs imbriqués dans ce bloc;

- Les procédures et les fonctions de ce bloc.


Ex:
DECLARE
x Integer;
BEGIN
x…..
DECLARE
y Number; Portée de x
BEGIN
x ….. Portée de y
y….
END;
…..
END;
DECLARE
v-sal Number (7,2) := 6000;
v-com Number (7,2) := v-sal * 0.2;
v-mes Varchar (255) := ‘présent’;
BLOC
BEGIN …
DECLARE
v-sal Number (7,2) := 5000;
v-com Number (7,2) := 0;
v-salt Number (7,2) := v-sal + v-com;
BEGIN …
Sous-bloc
v-mes := ‘ X n’est pas ‘ || v-mes;
END;
v-mes := ‘ l’employé ‘ || v-mes;
END;
Structures de contrôle
• Modifient l’enchaînement logique des instructions;
• 2 types de structures de contrôle:
– Conditionnelle;
– Itérative.
 Structures conditionnelles:
• IF-THEN-END IF;
• IF-THEN-ELSE-END IF;
• IF-THEN-ELSIF-END IF.
• Syntaxe:
IF condition THEN
instructions;
[ ELSIF condition THEN
instructions;]
[ ELSE
instructions; ]
END IF;
• condition: utilise des var définies ou les opérateurs de
comparaison: =, <, <=, >, >=, <>, IS NULL, IS NOT NULL.
………………..
IF v-sal > 2000 THEN
v-imp := 0.3 * v-sal;
ELSIF v-sal >= 1000 THEN
v-imp := 0.2 * v-sal;
ELSE
v-imp := 0.1 * v-sal;
END IF;
…………….
 Structures itératives:

• Permet d’exécuter +ieurs fois une instruct°(ou

++eurs);

• 3 types de boucles:

– Boucle basique: sans condition;

– Boucle FOR: un certain nombre de fois;

– Boucle WHILE: selon une condition.


 Basique:
• jeu d’instructions entre LOOP et END LOOP;
• Le mot clé EXIT permet d’arrêter la boucle;
• Il dépend d’une condition IF ou d’une instruction
autonome (avec WHEN);
LOOP
instructions;
EXIT [WHEN condition];
END LOOP;
 FOR:
FOR compteur IN [REVERSE] Binf . . Bsup LOOP
instructions;
END LOOP;
• Le nombre d’itérations est connu au départ;
• On ne déclare pas le compteur;
 WHILE:
WHILE condition LOOP
instructions;
END LOOP;
 Boucles imbriquées:
• On peut imbriquer des boucles à plusieurs niveaux;
• Il est conseillé d’utiliser des étiquettes
BEGIN
étiquette 1
LOOP ……………..
étiquette 2
LOOP ……..
*EXIT étiquette 1 WHEN ……..
EXIT étiquette 2 ……….
END LOOP étiquette 2;
……….
END LOOP étiquette 1;
END;

Vous aimerez peut-être aussi