SlideShare une entreprise Scribd logo
1  sur  24
Introduction au langage PL/SQL
Dr. Mohamed Anis BACH TOBJI
Maitre assistant à l’ESEN – Université de Manouba
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
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.
Conventions de programmation
 Conventions de nommage des variables
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
Structure d’un bloc PL/SQL
 Exemple de bloc PL/SQL
DECLARE
v_sal NUMBER;
BEGIN
SELECT sal INTO v_sal FROM emp
WHERE ename=‘SMITH’;
EXCEPTION
WHEN NO_DATA_FOUND THEN
…
END
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
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.
La base de données
exemple
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
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
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.
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
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 emp.job%TYPE;
v_job prend le type de la colonne
job de la table emp.
v_prime NUMBER(5,2) := 500.50;
v_prime_min v_prime%TYPE :=
v_prime*2;
BEGIN
…
v_prime et est initialisée à 500,45.
v_prime_min prend le type de la variable
v_prime
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 emp%ROWTYPE;
v_sal NUMBER:=800;
Emp_record prend la structure d’un
enregistrement de la table emp.
BEGIN
emp_record.empno:=2564;
emp_record.sal:=v_sal+100;
…
Accès aux attributs de l’enregistrement
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.
 À noter qu’avec la directive %ROWTYPE, les attributs n’héritent pas
la contrainte NOT NULL.
Code PL/SQL Commentaires
DECLARE
emp_record emp%ROWTYPE;
v_sal NUMBER:=800;
Emp_record prend la structure d’un
enregistrement de la table emp.
BEGIN
emp_record.empno:=2564;
emp_record.sal:=v_sal+100;
…
Accès aux attributs de l’enregistrement
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
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
… …
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
Les variables composées –
le type TABLE
 Il existe des procédures et des fonctions qui permettent de
manipuler les variables TABLE :
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;
DECLARE
v_compt NUMBER := 99;
BEGIN
:g_compteur := v_compt+1;
END;
/
PRINT g_compteur;
Déclaration de la variable sous SQL*Plus
Manipulation de la variable (ajout de :)
Affichage de la variable sous SQL*Plus
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
ACCEPT s_nbr PROMPT ‘Saisir un
entier’;
DECLARE
v_doub NUMBER;
BEGIN
v_doub := &s_nbr;
DBMS_OUTPUT.PUT_LINE(‘Le
résultat est ‘||v_doub);
END;
Nécessaire à l’affichage
Saisie de la variable de session s_nbr
Manipulation de la variable (ajout du &)
Affichage de la variable PL/SQL v_doub
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.)
Les blocs imbriqués
Blocs PL/SQL
DECLARE
var1
BEGIN
…
DECLARE
var2
BEGIN
…
DECLARE
var3
BEGIN
…
END;
END;
…
END;
Portée
de
var3
Portée
de
var2
Portée
de var1

Contenu connexe

Similaire à 1444475541443.pptx

Le langage plsql
Le langage plsqlLe langage plsql
Le langage plsqlkati_f87
 
PLSQL-Complements-4p.pdf
PLSQL-Complements-4p.pdfPLSQL-Complements-4p.pdf
PLSQL-Complements-4p.pdfRihabBENLAMINE
 
presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfRihabBENLAMINE
 
Pl/sql - interaction avec la base de données & structures de contrôle
Pl/sql  - interaction avec la base de données & structures de contrôlePl/sql  - interaction avec la base de données & structures de contrôle
Pl/sql - interaction avec la base de données & structures de contrôleAbdelouahed Abdou
 
Support formation vidéo : SQL pour les (grands) débutants
Support formation vidéo : SQL pour les (grands) débutants Support formation vidéo : SQL pour les (grands) débutants
Support formation vidéo : SQL pour les (grands) débutants SmartnSkilled
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdfRihabBENLAMINE
 
seance4-1 php.ppt
seance4-1 php.pptseance4-1 php.ppt
seance4-1 php.pptAmineReal
 
BDA-PL-SQL.pdf11111111111111111111111111
BDA-PL-SQL.pdf11111111111111111111111111BDA-PL-SQL.pdf11111111111111111111111111
BDA-PL-SQL.pdf11111111111111111111111111SaraMeriem1
 
05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...Hamza SAID
 
Java uik-chap3-bases java
Java uik-chap3-bases javaJava uik-chap3-bases java
Java uik-chap3-bases javaAmel Morchdi
 
downloadfile-101.pptx réseau local installation
downloadfile-101.pptx réseau local installationdownloadfile-101.pptx réseau local installation
downloadfile-101.pptx réseau local installationBensadiSamir
 
.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHP.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHPAbdoulaye Dieng
 

Similaire à 1444475541443.pptx (20)

Le langage plsql
Le langage plsqlLe langage plsql
Le langage plsql
 
Cours3 gdm sql
Cours3 gdm sqlCours3 gdm sql
Cours3 gdm sql
 
oracle : le PL-SQL
oracle : le PL-SQLoracle : le PL-SQL
oracle : le PL-SQL
 
PLSQL-Complements-4p.pdf
PLSQL-Complements-4p.pdfPLSQL-Complements-4p.pdf
PLSQL-Complements-4p.pdf
 
presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdf
 
La 2ème partie de la présentation PHP
La 2ème partie de la présentation PHPLa 2ème partie de la présentation PHP
La 2ème partie de la présentation PHP
 
Pl/sql - interaction avec la base de données & structures de contrôle
Pl/sql  - interaction avec la base de données & structures de contrôlePl/sql  - interaction avec la base de données & structures de contrôle
Pl/sql - interaction avec la base de données & structures de contrôle
 
SQL.pdf
SQL.pdfSQL.pdf
SQL.pdf
 
Support formation vidéo : SQL pour les (grands) débutants
Support formation vidéo : SQL pour les (grands) débutants Support formation vidéo : SQL pour les (grands) débutants
Support formation vidéo : SQL pour les (grands) débutants
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf
 
seance4-1 php.ppt
seance4-1 php.pptseance4-1 php.ppt
seance4-1 php.ppt
 
Chapitre 3 Linux
Chapitre 3 LinuxChapitre 3 Linux
Chapitre 3 Linux
 
memento_java_3c.pptx
memento_java_3c.pptxmemento_java_3c.pptx
memento_java_3c.pptx
 
BDA-PL-SQL.pdf11111111111111111111111111
BDA-PL-SQL.pdf11111111111111111111111111BDA-PL-SQL.pdf11111111111111111111111111
BDA-PL-SQL.pdf11111111111111111111111111
 
PL/SQL:les curseurs
PL/SQL:les curseursPL/SQL:les curseurs
PL/SQL:les curseurs
 
Cours: Spss 2 master comrce
Cours: Spss 2  master comrceCours: Spss 2  master comrce
Cours: Spss 2 master comrce
 
05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...
 
Java uik-chap3-bases java
Java uik-chap3-bases javaJava uik-chap3-bases java
Java uik-chap3-bases java
 
downloadfile-101.pptx réseau local installation
downloadfile-101.pptx réseau local installationdownloadfile-101.pptx réseau local installation
downloadfile-101.pptx réseau local installation
 
.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHP.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHP
 

Dernier

Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxabdououanighd
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesMohammedAmineHatoch
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxrajaakiass01
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesUnidad de Espiritualidad Eudista
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetJeanYvesMoine
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLElebaobabbleu
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Technologia Formation
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...Universidad Complutense de Madrid
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfAmgdoulHatim
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...Nguyen Thanh Tu Collection
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcourshalima98ahlmohamed
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxikospam0
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkRefRama
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxShinyaHilalYamanaka
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxhamzagame
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKNassimaMdh
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdftrendingv83
 

Dernier (19)

Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdf
 

1444475541443.pptx

  • 1. Introduction au langage PL/SQL Dr. Mohamed Anis BACH TOBJI Maitre assistant à l’ESEN – Université de Manouba
  • 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 ename=‘SMITH’; 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
  • 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 emp.job%TYPE; v_job prend le type de la colonne job de la table emp. v_prime NUMBER(5,2) := 500.50; v_prime_min v_prime%TYPE := v_prime*2; BEGIN … v_prime et est initialisée à 500,45. v_prime_min prend le type de la variable v_prime
  • 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 emp%ROWTYPE; v_sal NUMBER:=800; Emp_record prend la structure d’un enregistrement de la table emp. BEGIN emp_record.empno:=2564; emp_record.sal:=v_sal+100; … Accès aux attributs de l’enregistrement
  • 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.  À noter qu’avec la directive %ROWTYPE, les attributs n’héritent pas la contrainte NOT NULL. Code PL/SQL Commentaires DECLARE emp_record emp%ROWTYPE; v_sal NUMBER:=800; Emp_record prend la structure d’un enregistrement de la table emp. BEGIN emp_record.empno:=2564; emp_record.sal:=v_sal+100; … Accès aux attributs de l’enregistrement
  • 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; DECLARE v_compt NUMBER := 99; BEGIN :g_compteur := v_compt+1; END; / PRINT g_compteur; Déclaration de la variable sous SQL*Plus Manipulation de la variable (ajout de :) 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 ACCEPT s_nbr PROMPT ‘Saisir un entier’; DECLARE v_doub NUMBER; BEGIN v_doub := &s_nbr; DBMS_OUTPUT.PUT_LINE(‘Le résultat est ‘||v_doub); END; Nécessaire à l’affichage Saisie de la variable de session s_nbr Manipulation de la variable (ajout du &) Affichage de la variable PL/SQL v_doub
  • 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 … DECLARE var3 BEGIN … END; END; … END; Portée de var3 Portée de var2 Portée de var1