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

  • 48
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jan 15, 2022
  • Catégorie Management
  • Langue French
  • Taille du fichier 1.2350MB