ORACLE PL/SQL Professeur : M QBADOU 1 Professeur M.QBADOU ORACLE PL/SQL Sommair
ORACLE PL/SQL Professeur : M QBADOU 1 Professeur M.QBADOU ORACLE PL/SQL Sommaire 1. Introduction à PL/SQL • Les avantages de PL/SQL • Architecture de PL/SQL • Structures de Bloc PL/SQL 2. Variables 3. structures de contrôle 4. Curseurs • Curseurs implicites/Explicites • Curseurs paramétrés 5. Sous-programmes • Procédures et Fonctions • Paquetages (packages) 2 7. Exceptions 8. Transactions 9. Déclencheurs (triggers) • Principes d’utilisation des triggers • Exemples • Création et gestion des triggers • Conditions de déclenchement Professeur M.QBADOU ORACLE PL/SQL Objectifs Le cours a pour objectifs : Identifier les différentes parties d’un bloc PL/SQL Spécifier et déclarer des variables PL/SQL, utiliser les types PL/SQL, et en particulier les types implicites (%type, %rowtype) Ecrire des programmes stockés en PL/SQL : procédures, fonctions, paquetages Comprendre et Manipuler des curseurs (Cursor) Intégrer des requêtes select dans un programme PL/SQL Intégrer une requête delete, update, insert en PL/SQL Programmer en utilisant les exceptions (déclenchement, traitement, déclaration d’exceptions). Exécuter un bloc PL/SQL (Avec ou sans accès à la base) 3 Professeur M.QBADOU ORACLE PL/SQL Introduction à PL/SQL PL/SQL c’est quoi PL/SQL : Procedural Language / Structured Query Language Langage procédural qui représente une extension à SQL Bien intégrer au serveur Oracle, il permet de manipuler toutes les données Oracle : • relationnelles, • Relationnelles-Objets, • Java Permet d’exprimer facilement des règles de gestion complexes sous forme de : Procédures, Fonctions, Triggers stockés 4 Professeur M.QBADOU ORACLE PL/SQL Introduction à PL/SQL Avantages de PL/SQL Intégration parfaite de l’ SQL ce qui permet à PL/SQL de réaliser des traitements complexes sur les données de la base Modulaire et Support bien la POO puissance de la POO Offre une bonne performance : transmission d’un bloc de code au moteur de base de données réduit le trafic entre les applications et le serveur diminue les échanges réseau augmente les performances globales des applications Portabilité : Toutes bases oracle comporte un moteur PL/SQL Intégration à Java : possibilité d’utiliser Java (wrappers Java) Robuste : traitement des erreurs (gestion des exceptions) 5 Professeur M.QBADOU ORACLE PL/SQL Introduction à PL/SQL Le PL/SQL peut être utilisé sous 3 formes : Un bloc de code, exécuté comme une commande SQL, via un interpréteur standard (SQL+ ou iSQL*Plus, SQL Developer). Un fichier de commande PL/SQL. Un programme stocké dans la base(procédure, fonction, package ou trigger). Un programmes non stocké dans la base mais incorporé dans une application (Oracle FORMS DEVELOPER et Oracle REPORT DEVELOPER), dit programme applicatif Traitement d’un bloc PL/SQL : Un bloc PL/SQL est intégralement envoyé au moteur PL/SQL, qui traite chaque instruction PL/SQL et sous- traite les instructions purement SQL avec le moteur SQL réduction du trafic réseau 6 Professeur M.QBADOU ORACLE PL/SQL Introduction à PL/SQL Architecture de PL/SQL 7 Bloc PL/SQL Bloc PL/SQL Instructions Procédurales Procédural Instructions SQL SQL Moteur PL/SQL Moteur SQL Data Serveur Oracle Professeur M.QBADOU ORACLE PL/SQL Introduction à PL/SQL Type de bloc PL/SQL Anonyme Bloc sans nom Procédure & Fonction Blocs nommés et paramétrés, puis invoqués Les Triggers sont invoqués implicitement PLSP Equivalent en PL des ASP ou JSP. Dédié aux applications pour Internet ou la téléphonie mobile. 8 Professeur M.QBADOU ORACLE PL/SQL Introduction à PL/SQL Types de bloc PL/SQL Les types de Blocs sont: 9 [ DECLARE ] BEGIN --Instructions; [ EXCEPTION ] END; Anonyme PROCEDURE nom IS BEGIN --Instructions; [ EXCEPTION ] END; Procédure FUNCTION nom RETURN datatype IS BEGIN --Instructions; RETURN val; [ EXCEPTION ] END; Fonction Professeur M.QBADOU ORACLE PL/SQL Introduction à PL/SQL Structure d’un bloc PL/SQL PL/SQL est un langage structuré en blocs, constitués d’ensemble d’instructions. Les instructions regroupées dans un BLOC, ne génèrent qu’un seul accès à la base de données. Chaque Bloc PL/SQL peut être constitué de : 10 • Une section Déclarative: facultative, de déclaration et initialisation de type, variables et constantes. •Une section exécutable: obligatoire, contenant les instructions d’exécutions. •Une section d’exception: facultative, pour la gestion d’erreurs. Professeur M.QBADOU ORACLE PL/SQL Bloc PL/SQL Introduction à PL/SQL Structure d’un bloc PL/SQL 11 [ DECLARE --Déclaration et initialisation des variables, curseurs, exceptions, fonctions… ] BEGIN --Instructions Exécutables (sql ou pl/sql) [ EXCEPTION --Interception des erreurs (actions à réaliser lorsqu’une erreur se produit ] END; Professeur M.QBADOU ORACLE PL/SQL Bloc PL/SQL Introduction à PL/SQL Structure d’un bloc PL/SQL minimum 12 --Début de la section des instructions exécutables BEGIN NULL; --Aucune Action --La fin de la section des instructions exécutables END; Professeur M.QBADOU ORACLE PL/SQL Introduction à PL/SQL Exemple de bloc PL/SQL 13 Set ServerOutput on DECLARE v_variable1 NUMBER; v_variable2 NUMBER; v_variable3 NUMBER; excep1 EXCEPTION; BEGIN IF (v_variable2 <> 0) THEN v_variable3 := v_variable1/v_variable2; ELSE RAISE excep1; END IF; EXCEPTION WHEN excep1 THEN DBMS_OUTPUT.PUT_LINE('Erreur'); END; Professeur M.QBADOU ORACLE PL/SQL Package DBMS_OUTPUT Procédures du Package DBMS_OUTPUT Doit être autorisée sous SQL*PLUS à l’aide de: SET SERVEROUTPUT ON 14 Procédure Action GET_LINE GET_LINE(ligne OUT, statut OUT) extrait une ligne du tampon de sortie GET_LINES GET_LINES(lignes OUT, n OUT) extrait n lignes NEW_LINE Affiche la ligne générée par PUT et place un marqueur de ligne PUT PUT(variable | constante) place la valeur dans le tampon PUT_LINE Place la valeur dans le tampon et place un marqueur de ligne ENABLE ENABLE(taille du tampon) DISABLE Désactive le mode trace Professeur M.QBADOU ORACLE PL/SQL La section Déclarative – Variable et Constante Rôle de la section déclarative Les variables • Classification • Utilisation • Variables PL/SQL • Typage dynamique Les variables Non PL/SQL Exemples 15 Professeur M.QBADOU ORACLE PL/SQL La section Déclarative – Variable et Constante Rôle de la section Déclarative Elle est facultative, débute par le mot clé: DECLARE. Elle contient toutes les déclarations des variables et leur éventuelle initialisation. Ces variables sont utilisées localement dans la section exécutable, Cette section ne peut pas contenir d’instructions exécutables Cette section peut contenir des procédures ou des fonctions intégrées. 16 Professeur M.QBADOU ORACLE PL/SQL La section Déclarative – Variable et Constante Variables – Classification de variables Variables PL/SQL: Scalaires (colonnes d’une table) Composées (RECORD, TABLE) Références (Pointeurs ou REF) LOB: contiennent des valeurs appelées LOCATORS qui spécifient l’emplacement de Large Objects (Images). COLLECTION Des variables non-PL/SQL BIND variables ( variables hôtes , variables liées) 17 Professeur M.QBADOU ORACLE PL/SQL La section Déclarative – Variable et Constante Utilisation des variables On utilise des variables pour : • Le stockage temporaire de données • La manipulation de valeur stockées • La possibilité de les réutiliser • Simplifier la maintenance du code • Variable typée dynamiquement au moyen d’attributs spéciaux %ROWTYPE ou %TYPE 18 Professeur M.QBADOU ORACLE PL/SQL La section Déclarative – Variable et Constante Variables PL/SQL Déclaration de Variables et Constantes Adopter des conventions pour nommer des objets. Initialiser les constantes et les variables déclarées NOT NULL. Initialiser les identifiants en utilisant l'opérateur d'affectation ( := ) ou le mot réservé DEFAULT. Déclarer au plus un identifiant par ligne. Le type peut être primitif ou objet. Toute variable doit être déclarée avant d’être utilisée. nom_var [CONSTANT] Type[NOT NULL][:=|DEFAULT expr]; 19 Professeur M.QBADOU ORACLE PL/SQL La section Déclarative – Variable et Constante Quelques conventions en PL/SQL Deux variables peuvent partager le même nom si elles sont dans des portées distinctes Les noms des variables doivent être différents des noms des colonnes des tables utilisées dans un bloc • v_empno (variable) • g_deptno (globale) • c_emp (CURSOR) L’identifiant est limité à 30 caractères, Le premier caractère doit être une lettre. 20 Professeur M.QBADOU ORACLE PL/SQL La section Déclarative – Variable et Constante Type de données scalaires de base VARCHAR2(TailleMax) : Taille variable jusqu’à 32767 octets NUMBER[(precision,echelle)] : Numérique à virgule flottante DATE : -4712 avant J.C. à +9999 après J.C. CHAR[(TailleMax)] LONG : 2 147 483 647 octets LONG RAW : Binaire jusqu’à 32 760 octets BOOLEAN : True, False ou NULL BINARY_INTEGER : Entier signés compris entre -/+2 147 483 647 PLS_INTEGER : Entier signés compris entre -/+2 147 483 647 21 Professeur M.QBADOU ORACLE PL/SQL Section Déclarative – Variable et Constante Types composés contient des composants internes. Exemple : Type RECORD, TABLE, NESTED TABLE, VARRAY. Type LOB: Il s'agit d'un localisateur spécifiant la localisation d’objets de grande taille (des images, des vidéos, …) • BFILE: stocke la référence d’un fichier du système d’exploitation. • BLOB: permet de stocker un objet binaire jusqu’à 4 GO. • CLOB: Pour stocker un ensemble de caractères, jusqu’à 4 GO. • NCLOB: Pour stocker un ensemble de caractères, codés sur un ou plusieurs octets, jusqu’à 4 GO. 22 Professeur M.QBADOU ORACLE PL/SQL Section Déclarative – Variable et Constante Types dynamique %Type : Une variable peut être déclarée de même type qu’une variable déjà déclarée ou d’une colonne de la table sur laquelle on travaille en utilisant l’attribut : %Type : nomVar nomTable.colonne%Type; nomVar nomVariableConnue%Type; Avantage : Garantit la compatibilité de type, et facilite la maintenance. Exemples: V_nombre1 NUMBER(7,2); V_nombre2 V_nombre1%type := 10; V_sal employee.salaire%type; 23 Professeur M.QBADOU ORACLE PL/SQL Section Déclarative – Variable et Constante Les attributs %TYPE et %ROWTYPE - Exemple Le type de données de la colonne peut être inconnu. Le type de données de la colonne peut changer en exécution. Facilite la maintenance. uploads/Management/ cours-plsql.pdf
Documents similaires










-
48
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 15, 2022
- Catégorie Management
- Langue French
- Taille du fichier 1.2350MB