SlideShare a Scribd company logo
1 of 45
Download to read offline
Abdelkhalek Benhoumine
 Première partie
Introduction au langage PL/SQL
Les variables
Traitements conditionnels
Traitements répétitifs
Les curseurs
Gestion d’exceptions
Procédures, Fonctions
Deuxième partie
Triggers
PLAN DU COURS
• Le cadre ( Framework ) est une description non-technique de comment le document
est structuré
• Les fondements (Foundation) contient l'essentiel de SQL3 incluant les types de
données abstraits et le modèle objet-relationnel
• L'interface d'appel client (SQL/CLI) permet le dialogue client/serveur,
• Le langage des procédures stockées (SQL/PSM ) permet la spécification des
procédures stockées,
• L'intégration aux langages classiques (SQL/Bindings) reprend l' «embedded »
SQL-2 et l'étend à SQL3
• La gestion des transactions (SQL/XA ) est une spécification de l'interface pour
moniteur transactionnel distribué.
• La gestion du temps (SQL/Temporal ) définit le support du temps et les intervalles...
• L'accès aux données externes (SQL/MED) permet l'utilisation de SQL pour accèder à
ds données non SQL,
• L'intégration aux langages objets (SQL/OBJ ) définit l'utilisation de SQL depuis un
langage objet
2. INTRODUCTION AU LANGAGE PL/SQL
2.1. Le bloc PL/SQL
2.1,1. Structure d'un bloc
2.1.2. Exemple
Comparaison avec SQL
 SQL :
 langage non procédural
 PL/SQL :
 langage procédural, qui intègre des ordres SQL
 SELECT, INSERT, UPDATE, DELETE
 INSERT, UPDATE, DELETE
 gestion des transactions : COMMIT, ROLLBACK, SAVEPOINT
 langage à part entière comprenant
 Définition de variables, constantes, expressions, affectations
 Traitements conditionnels, répétitifs
 Traitement des curseurs (et de collections)
 Traitement des erreurs et d’exceptions
 Modularité (sous-programmes)
2.2. Structure d'un bloc
• Le bloc
* interprète un ensemble de commandes
* est composé de 3 sections :
DECLARE
déclaration variables, constantes,
exceptions et curseurs
BEGIN [nom-bloc]
instructions SQL et extensions
EXCEPTION
Traitement des exceptions
END ; ou END nombloc;
3. Les variables
3.1. Types de variables utilisées
3.2. Déclaration des variable
3.3. Initialisation et visibilité
3.2. Variables de type simple
• Exemple :
Declare
nom char (15) ;
salaire number (7, 2) ;
embauche DATE ; DD-MON-YY
réponse boolean ; valeur : TRUE, FALSE, NULL
2.2.2. Exemple : CONTRÔLE de STOCK
Accept nom-prod Prompt ‘ nom du produit désiré’
Declare
qte-stock number (5) ;
Begin
Select quantité into qte-stock From Stock
Where produit= '&nom-prod' ;
If qte-stock > 0
Then Update stock Set quantité = quantité - 1
Where produit = '&nom-prod' ;
Insert into Ventes Values (&nom-prod ||'VENDU');
Else Insert into Ventes
Values (&nom-prod || 'demandé');
end if;
commit;
end;
3.3. Exemple
Declare
nom_emp char (15) ;
salaire emp.sal%TYPE ;
commission emp.comm%TYPE ;
nom_départ char (15) ;
Begin
Select ename, sal, comm, dname
Into nom_emp, salaire, commission, nom_départ
Fom emp, dept
Where ename = 'MILLER' and
emp.deptno=dept.deptno;
...
End;
4. Traitements conditionnels
• Définition :
• exécution d'instructions suivant le résultat d'une condition
• Syntaxe :
If condition1 Then traitement1 ;
elsif condition2 then traitement2 ;
else traitement3 ;
end if;
• Opérateurs utilisés dans les conditions :
• ce sont les mêmes que dans SQL
5. Traitements répétitifs
• Définition :
• possibilité d'effectuer des traitements répétitifs : clause
LOOP
• Quatre types de boucles :
• la boucle de base
• la boucle FOR
• la boucle WHILE
• la boucle CURSOR ... FOR
5.2. La boucle de base
• syntaxe :
LOOP [label]
instructions ;
END LOOP [label] ;
• sortie de boucle :
EXIT [label] [WHEN condition]
5.3. La boucle FOR
• Syntaxe :
For indice In [Reverse] exp1 ... exp2 Loop
instructions ;
End Loop ;
5.4. La boucle while
• exécution tant que condition vérifiée
• Syntaxe :
While condition Loop
instructions ;
End loop ;
• exemple : reste de 7324 div 9
Declare
reste number := 7324 ;
Begin
While reste >= 9 loop
reste := reste - 9 ;
end loop ;
insert into resultat values (reste, 'Reste de la division');
End ;
5.4. La boucle while
6. Les curseurs
en PL/SQL
6.1. Définition et types
6.2. Etapes d'utilisation d'un curseur implicite
6.3. Attributs d'un curseur
6.4. Simplification d'écriture
6.2. Utilisation d'un curseur
explicite
• Les étapes De Déclaration : 4 étapes
6.2. Déclaration d'un curseur explicite
6.2. Ouverture d'un curseur explicite
l'ouverture se fait dans la section Begin
• syntaxe : OPEN nom_curseur;
6.2. Traitement des lignes
• Le Fetch ramène une ligne à la fois.
6.2. Exemple
6.2. Fermeture d'un curseur explicite
• Syntaxe :
CLOSE nom_curseur ;
• action : libère la place mémoire
6.2. Exemple
Declare
cursor dept_10 is
select ename, sal from emp
where deptno = 10 order by sal ;
nom emp.ename%TYPE ;
salaire emp.sal%TYPE ;
Begin
Open dept_10 ;
Loop
Fetch dept_10 into nom, salaire ;
If salaire > 2500
then insert into résultat values (nom,salaire);
end if;
exit when salaire = 5 000 ;
end loop ;
close dept_10 ;
End ;
6.3. Les attributs d'un curseur
• Définition : indicateurs sur l'état d'un curseur.
• %FOUND : dernière ligne traitée
• %NOTFOUND : id
• %ISOPEN : ouverture d'un curseur
• %ROWCOUNT : nombre de lignes déjà traitées
6.3.1. Attribut %FOUND
(resp. %NOTFOUND)
6.3.3. Attribut %ISOPEN
6.3.4. Attribut %ROWCOUNT
6.4. Simplification d'écriture
• déclaration de variables :
Declare
cursor nom_curseur is ordre_select ;
nom_struct nom_curseur%Rowtype ;
• éléments de la structure identifiés par :
nom_struct.nom_colonne
• structure renseignée par le Fetch :
Fetch nom_curseur into nom_struct ;
6.5. Curseur paramétré
• Objectif : réutiliser un même curseur avec des valeurs
différentes dans un même bloc PL/SQL
• Syntaxe :
Declare
cursor nom_curseur (par1 type, par2 type, ...) is
ordre_select
Begin
Open nom_curseur (val1, val2, ...) ;
6.6.La clause CURRENT OF
• Objectif :
• Accéder directement en modification ou en suppression à la
ligne ramenée par Fetch
• il faut verouiller les lignes lors de la déclaration du curseur (
... For Update of nom_col ...)
6.6. Exemple 1
Declare
Cursor c1 is
select ename, sal from emp
for update of sal ;
Begin
For c1_rec in c1
Loop If c1_rec.sal > 1 500
Then Insert into resultat
values (c1_rec.ename, c1_rec.sal * 1.3);
Update emp set sal = sal * 1.3
Where Current of c1 ; end if,
end loop ;
end;
7. Gestion des
erreurs
7.1. Section EXCEPTION
7.2. Anomalie progr. utilisateur
7.3. Erreur Oracle
7.1. Section Exception
• Notion d'exception : traitement d'erreurs
• Types d'erreurs :
• erreurs internes Oracle (Sqlcode <> 0)
• erreurs programme utilisateur
• Règles à respecter :
• définir et donner un nom à chaque erreur
• associer ce nom à la section Exception (partie declare)
• définir le traitement dans la partie Exception
7.2. Anomalies du programme
 Syntaxe :
Declare
nom_erreur exception ;
...
Begin
...
If (anomalie) then raise nom_erreur ;
...
Exception When nom_erreur then (traitement) ;
 Sortie du bloc après exécution du traitement
7.4. Diagnostic d’erreurs
• SQLCODE : renvoie le code de l'erreur courante (valeur
numérique)
• SQLERRM [(code_erreur)] :
• renvoie le libellé de l'erreur courante.
Declare
nom char (10) ;
code number ;
lg number ;
mess char (50) ;
Begin
Select ename into nom from emp
Where empno = 9999 ;
Exception
When others then code := sqlcode ;
mess := sqlerrm ; lg := length (mess) ;
Insert into resultat values (code, lg, mess) ;
Commit ;
End ;
7.4. Exemple
_ NO_DATA_FOUND
– TOO_MANY_ROWS
– INVALID_CURSOR
– ZERO_DIVIDE
– DUP_VAL_ON_INDEX
DECLARE
e_insert_excep EXCEPTION;
PRAGMA EXCEPTION_INIT(e_insert_excep, -01400);
BEGIN
//
// Traitement
//
EXCEPTION
WHEN e_insert_excep THEN
DBMS_OUTPUT.PUT_LINE('INSERT OPERATION FAILED');
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;
8. Sous-programmes
8.1. Déclaration
8.2. Les procédures
8.3. Les fonctions
8.4. Les packages
8.4. Exemple de package
package actions_emp is -- spécification
procedure offre_prime (id_emp number);
procedure embauche (id_emp number, nom char, ...);
procedure licencie (id_emp number);
END actions_emp;
package BODY actions_emp is
procedure offre_prime (id_emp number) IS ...
procedure embauche (id_emp number, nom char, ...) IS
Begin INSERT INTO emp (...)
End embauche;
procedure licencie (id_emp number) IS ...
END action_emp;
LE LANGAGE PL/SQL :
2° PARTIE
9. Déclencheurs
(Triggers)
9.1. Définition
9.2. Caractéristiques
9.3. Utilisations

More Related Content

What's hot

Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLwebreaker
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école Mehdi Hamime
 
Création de Vues | SQL Oracle
Création de Vues | SQL OracleCréation de Vues | SQL Oracle
Création de Vues | SQL Oraclewebreaker
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRSLilia Sfaxi
 
Projet de fin d'etude sur le parc informatique
Projet  de fin d'etude sur le parc informatiqueProjet  de fin d'etude sur le parc informatique
Projet de fin d'etude sur le parc informatiqueHicham Ben
 
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPUn exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPKristen Le Liboux
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcminfcom
 
Telecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplusTelecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlpluswebreaker
 
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFErapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFEDonia Hammami
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfslimyaich3
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UMLAmir Souissi
 
Conception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIREConception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIREGhizlane ALOZADE
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Heithem Abbes
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceLilia Sfaxi
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 

What's hot (20)

Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
 
Création de Vues | SQL Oracle
Création de Vues | SQL OracleCréation de Vues | SQL Oracle
Création de Vues | SQL Oracle
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Projet de fin d'etude sur le parc informatique
Projet  de fin d'etude sur le parc informatiqueProjet  de fin d'etude sur le parc informatique
Projet de fin d'etude sur le parc informatique
 
Introduction à Laravel
Introduction à LaravelIntroduction à Laravel
Introduction à Laravel
 
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPUn exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHP
 
Contraintes uml
Contraintes umlContraintes uml
Contraintes uml
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcm
 
Angular Avancé
Angular AvancéAngular Avancé
Angular Avancé
 
Telecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplusTelecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplus
 
UML
UMLUML
UML
 
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFErapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFE
 
Cours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateurCours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateur
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
Conception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIREConception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIRE
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 

Similar to cours Plsql _ abdelkhalek benhoumine

1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdf1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdfImaneZoubir1
 
PL/Sql et Sécurité des bases de données
PL/Sql et Sécurité des bases de donnéesPL/Sql et Sécurité des bases de données
PL/Sql et Sécurité des bases de donnéessmiste
 
Plsql triggers
Plsql triggersPlsql triggers
Plsql triggersAz Za
 
PLSQL-Complements-4p.pdf
PLSQL-Complements-4p.pdfPLSQL-Complements-4p.pdf
PLSQL-Complements-4p.pdfRihabBENLAMINE
 
Plpython et Triggers
Plpython et TriggersPlpython et Triggers
Plpython et TriggersAffinitic
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introductionneuros
 
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !Paris Salesforce Developer Group
 
Javascript ne se limite pas à jquery
Javascript ne se limite pas à jqueryJavascript ne se limite pas à jquery
Javascript ne se limite pas à jqueryneuros
 
Projet base de donnée
Projet base de donnée Projet base de donnée
Projet base de donnée MakremArfaoui2
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logiciellecyrilgandon
 

Similar to cours Plsql _ abdelkhalek benhoumine (20)

1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdf1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdf
 
PL/Sql et Sécurité des bases de données
PL/Sql et Sécurité des bases de donnéesPL/Sql et Sécurité des bases de données
PL/Sql et Sécurité des bases de données
 
2_8_Cours_Plsql.ppt
2_8_Cours_Plsql.ppt2_8_Cours_Plsql.ppt
2_8_Cours_Plsql.ppt
 
C# 7 - Nouveautés
C# 7 - NouveautésC# 7 - Nouveautés
C# 7 - Nouveautés
 
Plsql triggers
Plsql triggersPlsql triggers
Plsql triggers
 
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
 
Les03.ppt
Les03.pptLes03.ppt
Les03.ppt
 
Plpython et Triggers
Plpython et TriggersPlpython et Triggers
Plpython et Triggers
 
Les04.ppt
Les04.pptLes04.ppt
Les04.ppt
 
Les08.ppt
Les08.pptLes08.ppt
Les08.ppt
 
Les06.ppt
Les06.pptLes06.ppt
Les06.ppt
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introduction
 
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
 
Javascript ne se limite pas à jquery
Javascript ne se limite pas à jqueryJavascript ne se limite pas à jquery
Javascript ne se limite pas à jquery
 
Spring 3.0
Spring 3.0Spring 3.0
Spring 3.0
 
Projet base de donnée
Projet base de donnée Projet base de donnée
Projet base de donnée
 
Cours java script
Cours java scriptCours java script
Cours java script
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
 
De Java à .NET
De Java à .NETDe Java à .NET
De Java à .NET
 

Recently uploaded

Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 
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 ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfssuserc72852
 
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfSTRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfGamal Mansour
 
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
 
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
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxrajaakiass01
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsJaouadMhirach
 
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
 
658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdfMariaClaraAlves46
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
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
 
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
 
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
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkRefRama
 
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
 
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
 

Recently uploaded (20)

Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
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
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfSTRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
 
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
 
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
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénients
 
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
 
658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
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
 
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...
 
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
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
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...
 
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
 

cours Plsql _ abdelkhalek benhoumine

  • 2.
  • 3.  Première partie Introduction au langage PL/SQL Les variables Traitements conditionnels Traitements répétitifs Les curseurs Gestion d’exceptions Procédures, Fonctions Deuxième partie Triggers PLAN DU COURS
  • 4.
  • 5. • Le cadre ( Framework ) est une description non-technique de comment le document est structuré • Les fondements (Foundation) contient l'essentiel de SQL3 incluant les types de données abstraits et le modèle objet-relationnel • L'interface d'appel client (SQL/CLI) permet le dialogue client/serveur, • Le langage des procédures stockées (SQL/PSM ) permet la spécification des procédures stockées, • L'intégration aux langages classiques (SQL/Bindings) reprend l' «embedded » SQL-2 et l'étend à SQL3 • La gestion des transactions (SQL/XA ) est une spécification de l'interface pour moniteur transactionnel distribué. • La gestion du temps (SQL/Temporal ) définit le support du temps et les intervalles... • L'accès aux données externes (SQL/MED) permet l'utilisation de SQL pour accèder à ds données non SQL, • L'intégration aux langages objets (SQL/OBJ ) définit l'utilisation de SQL depuis un langage objet
  • 6. 2. INTRODUCTION AU LANGAGE PL/SQL 2.1. Le bloc PL/SQL 2.1,1. Structure d'un bloc 2.1.2. Exemple
  • 7. Comparaison avec SQL  SQL :  langage non procédural  PL/SQL :  langage procédural, qui intègre des ordres SQL  SELECT, INSERT, UPDATE, DELETE  INSERT, UPDATE, DELETE  gestion des transactions : COMMIT, ROLLBACK, SAVEPOINT  langage à part entière comprenant  Définition de variables, constantes, expressions, affectations  Traitements conditionnels, répétitifs  Traitement des curseurs (et de collections)  Traitement des erreurs et d’exceptions  Modularité (sous-programmes)
  • 8. 2.2. Structure d'un bloc • Le bloc * interprète un ensemble de commandes * est composé de 3 sections : DECLARE déclaration variables, constantes, exceptions et curseurs BEGIN [nom-bloc] instructions SQL et extensions EXCEPTION Traitement des exceptions END ; ou END nombloc;
  • 9. 3. Les variables 3.1. Types de variables utilisées 3.2. Déclaration des variable 3.3. Initialisation et visibilité
  • 10. 3.2. Variables de type simple • Exemple : Declare nom char (15) ; salaire number (7, 2) ; embauche DATE ; DD-MON-YY réponse boolean ; valeur : TRUE, FALSE, NULL
  • 11. 2.2.2. Exemple : CONTRÔLE de STOCK Accept nom-prod Prompt ‘ nom du produit désiré’ Declare qte-stock number (5) ; Begin Select quantité into qte-stock From Stock Where produit= '&nom-prod' ; If qte-stock > 0 Then Update stock Set quantité = quantité - 1 Where produit = '&nom-prod' ; Insert into Ventes Values (&nom-prod ||'VENDU'); Else Insert into Ventes Values (&nom-prod || 'demandé'); end if; commit; end;
  • 12. 3.3. Exemple Declare nom_emp char (15) ; salaire emp.sal%TYPE ; commission emp.comm%TYPE ; nom_départ char (15) ; Begin Select ename, sal, comm, dname Into nom_emp, salaire, commission, nom_départ Fom emp, dept Where ename = 'MILLER' and emp.deptno=dept.deptno; ... End;
  • 13. 4. Traitements conditionnels • Définition : • exécution d'instructions suivant le résultat d'une condition • Syntaxe : If condition1 Then traitement1 ; elsif condition2 then traitement2 ; else traitement3 ; end if; • Opérateurs utilisés dans les conditions : • ce sont les mêmes que dans SQL
  • 14. 5. Traitements répétitifs • Définition : • possibilité d'effectuer des traitements répétitifs : clause LOOP • Quatre types de boucles : • la boucle de base • la boucle FOR • la boucle WHILE • la boucle CURSOR ... FOR
  • 15. 5.2. La boucle de base • syntaxe : LOOP [label] instructions ; END LOOP [label] ; • sortie de boucle : EXIT [label] [WHEN condition]
  • 16. 5.3. La boucle FOR • Syntaxe : For indice In [Reverse] exp1 ... exp2 Loop instructions ; End Loop ;
  • 17. 5.4. La boucle while • exécution tant que condition vérifiée • Syntaxe : While condition Loop instructions ; End loop ;
  • 18. • exemple : reste de 7324 div 9 Declare reste number := 7324 ; Begin While reste >= 9 loop reste := reste - 9 ; end loop ; insert into resultat values (reste, 'Reste de la division'); End ; 5.4. La boucle while
  • 19. 6. Les curseurs en PL/SQL 6.1. Définition et types 6.2. Etapes d'utilisation d'un curseur implicite 6.3. Attributs d'un curseur 6.4. Simplification d'écriture
  • 20. 6.2. Utilisation d'un curseur explicite • Les étapes De Déclaration : 4 étapes
  • 21. 6.2. Déclaration d'un curseur explicite
  • 22. 6.2. Ouverture d'un curseur explicite l'ouverture se fait dans la section Begin • syntaxe : OPEN nom_curseur;
  • 23. 6.2. Traitement des lignes • Le Fetch ramène une ligne à la fois.
  • 25. 6.2. Fermeture d'un curseur explicite • Syntaxe : CLOSE nom_curseur ; • action : libère la place mémoire
  • 26. 6.2. Exemple Declare cursor dept_10 is select ename, sal from emp where deptno = 10 order by sal ; nom emp.ename%TYPE ; salaire emp.sal%TYPE ; Begin Open dept_10 ; Loop Fetch dept_10 into nom, salaire ; If salaire > 2500 then insert into résultat values (nom,salaire); end if; exit when salaire = 5 000 ; end loop ; close dept_10 ; End ;
  • 27. 6.3. Les attributs d'un curseur • Définition : indicateurs sur l'état d'un curseur. • %FOUND : dernière ligne traitée • %NOTFOUND : id • %ISOPEN : ouverture d'un curseur • %ROWCOUNT : nombre de lignes déjà traitées
  • 31. 6.4. Simplification d'écriture • déclaration de variables : Declare cursor nom_curseur is ordre_select ; nom_struct nom_curseur%Rowtype ; • éléments de la structure identifiés par : nom_struct.nom_colonne • structure renseignée par le Fetch : Fetch nom_curseur into nom_struct ;
  • 32. 6.5. Curseur paramétré • Objectif : réutiliser un même curseur avec des valeurs différentes dans un même bloc PL/SQL • Syntaxe : Declare cursor nom_curseur (par1 type, par2 type, ...) is ordre_select Begin Open nom_curseur (val1, val2, ...) ;
  • 33. 6.6.La clause CURRENT OF • Objectif : • Accéder directement en modification ou en suppression à la ligne ramenée par Fetch • il faut verouiller les lignes lors de la déclaration du curseur ( ... For Update of nom_col ...)
  • 34. 6.6. Exemple 1 Declare Cursor c1 is select ename, sal from emp for update of sal ; Begin For c1_rec in c1 Loop If c1_rec.sal > 1 500 Then Insert into resultat values (c1_rec.ename, c1_rec.sal * 1.3); Update emp set sal = sal * 1.3 Where Current of c1 ; end if, end loop ; end;
  • 35. 7. Gestion des erreurs 7.1. Section EXCEPTION 7.2. Anomalie progr. utilisateur 7.3. Erreur Oracle
  • 36. 7.1. Section Exception • Notion d'exception : traitement d'erreurs • Types d'erreurs : • erreurs internes Oracle (Sqlcode <> 0) • erreurs programme utilisateur • Règles à respecter : • définir et donner un nom à chaque erreur • associer ce nom à la section Exception (partie declare) • définir le traitement dans la partie Exception
  • 37. 7.2. Anomalies du programme  Syntaxe : Declare nom_erreur exception ; ... Begin ... If (anomalie) then raise nom_erreur ; ... Exception When nom_erreur then (traitement) ;  Sortie du bloc après exécution du traitement
  • 38. 7.4. Diagnostic d’erreurs • SQLCODE : renvoie le code de l'erreur courante (valeur numérique) • SQLERRM [(code_erreur)] : • renvoie le libellé de l'erreur courante.
  • 39. Declare nom char (10) ; code number ; lg number ; mess char (50) ; Begin Select ename into nom from emp Where empno = 9999 ; Exception When others then code := sqlcode ; mess := sqlerrm ; lg := length (mess) ; Insert into resultat values (code, lg, mess) ; Commit ; End ; 7.4. Exemple
  • 40. _ NO_DATA_FOUND – TOO_MANY_ROWS – INVALID_CURSOR – ZERO_DIVIDE – DUP_VAL_ON_INDEX
  • 41. DECLARE e_insert_excep EXCEPTION; PRAGMA EXCEPTION_INIT(e_insert_excep, -01400); BEGIN // // Traitement // EXCEPTION WHEN e_insert_excep THEN DBMS_OUTPUT.PUT_LINE('INSERT OPERATION FAILED'); DBMS_OUTPUT.PUT_LINE(SQLERRM); END;
  • 42. 8. Sous-programmes 8.1. Déclaration 8.2. Les procédures 8.3. Les fonctions 8.4. Les packages
  • 43. 8.4. Exemple de package package actions_emp is -- spécification procedure offre_prime (id_emp number); procedure embauche (id_emp number, nom char, ...); procedure licencie (id_emp number); END actions_emp; package BODY actions_emp is procedure offre_prime (id_emp number) IS ... procedure embauche (id_emp number, nom char, ...) IS Begin INSERT INTO emp (...) End embauche; procedure licencie (id_emp number) IS ... END action_emp;
  • 44. LE LANGAGE PL/SQL : 2° PARTIE
  • 45. 9. Déclencheurs (Triggers) 9.1. Définition 9.2. Caractéristiques 9.3. Utilisations