I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved.
Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur et pour le DBA Expliquer les avantages du PL/ I-2 Copyright Oracle Corporation, 1998. All rights reserved. Objectifs Ce chapitre va vous permettre de découvrir le PL/ (langage procédural d Oracle), il vous sera présenté et vous apprendrez dans quels cas il peut être utilisé. Les Bases PL/ I-2
A propos du PL/ Le PL/ est une extension du avec des caractéristiques propres aux langages de programmation. La manipulation et l interrogation des données en sont incluses dans le code procédural. I-3 Copyright Oracle Corporation, 1998. All rights reserved. A propos du PL/ Le PL/ est le Langage Procédural d Oracle. C est une extension du langage, langage standard d accès aux données pour les bases de données relationnelles. Le PL/ offre certaines caractéristiques du développement logiciel moderne telles que l encapsulation des données, la gestion des erreurs, l orientation objet, apportant ainsi au serveur et aux outils Oracle les dernières évolutions en matière de programmation. Le PL/ intègre de nombreuses avancées des langages de programmation datant des années 70 et 80. Ceci permet d inclure la manipulation et l interrogation des données dans des blocs structurés ou dans des unités de code procédural, faisant du PL/ un langage puissant d exécution de transactions. Avec le PL/, vous pouvez utilisez le langage pour accéder ou modifier les données Oracle, et le PL/ pour contrôler et gérer ces données. Les Bases PL/ I-3
Environnement PL/ PL/ engine Bloc PL/ Bloc PL/ PL/ Procedural Statement Executor Statement Executor Serveur Oracle I-4 Copyright Oracle Corporation, 1998. All rights reserved. Le Moteur PL/ et le Serveur Oracle PL/ n est pas un produit Oracle à part entière, c est une technologie utilisée par le Serveur Oracle et certains outils Oracle. Les blocs PL/ sont traités par un moteur PL/. Ce moteur peut résider dans le produit lui-même ou dans le Serveur Oracle. Le dispositif utilisé dépend de la structure qui fait appel à ce PL/. Lorsque la soumission de blocs PL/ se fait à partir d'un programme Pro*, d un user-exit, de *Plus ou de Server Manager, c est le dispositif PL/ situé dans le Serveur Oracle qui les traite. Il divise le code du bloc en instructions séparées qu il envoie au moteur. Cela signifie qu un seul transfert est nécessaire pour envoyer le bloc de l application au Serveur Oracle, ce qui améliore les performances, particulièrement dans une application client-serveur. Des sousprogrammes stockés peuvent être référencés par un nombre quelconque d applications connectées à la base de données. Les Bases PL/ I-4
Avantages du PL/ Intégration Application Bibliothèque partagée Serveur Oracle I-5 Copyright Oracle Corporation, 1998. All rights reserved. Intégration Le PL/ joue un rôle central à la fois sur le Serveur Oracle (grâce aux procédures, aux fonctions stockées, aux triggers base de données et aux packages) et sur les outils de développement Oracle (grâce aux triggers dans Oracle Developer). Les applications Oracle Developer utilisent des bibliothèques partagées qui fournissent le code (procédures et fonctions) et sont accessibles localement et à distance. Oracle Developer se compose d Oracle Forms, d Oracle Reports et d Oracle Graphics. Les types de données sont également utilisables en PL/. Combinés à l accès direct proposé par, ces types de données partagés intègrent le PL/ avec le dictionnaire de données du Serveur Oracle. Le PL/ comble ainsi le fossé entre la facilité d accès aux données et le besoin d une programmation procédurale. PL/ dans les outils Oracle Beaucoup d outils Oracle, dont Oracle Developer, possède un moteur PL/ indépendant de celui sur le serveur Oracle. Le dispositif filtre les instructions et les envoie individuellement au moteur du Serveur Oracle. Il traite les instructions procédurales restantes à l aide du moteur PL/. Le moteur PL/ traite les données locales à l application (qui se trouvent déjà dans l environnement client et non dans la base de données). Cela réduit le travail du Serveur Oracle et le nombre de Curseurs nécessaires en mémoire. Les Bases PL/ I-5
Avantages du PL/ Améliorer les performances Application Autres DBMS Application IF...THEN ELSE END IF; Oracle avec PL/ I-6 Copyright Oracle Corporation, 1998. All rights reserved. Des performances améliorées Le PL/ peut améliorer la performance d une application. L étendue de cette amélioration dépend de l environnement d exécution. Le PL/ peut être utilisé pour regrouper des instructions en un seul bloc envoyé en une seule fois au serveur, réduisant ainsi le trafic réseau. Sans PL/, les instructions sont traitées une par une et chaque nouvelle instruction requiert un appel au Serveur Oracle et pénalise ainsi les performances du système. Dans un environnement réseau, ce trafic peut devenir non-négligeable. Comme l illustre la diapositive, si votre application utilise beaucoup de, vous pouvez utiliser avec profit des blocs et des sous-programmes PL/ pour regrouper les instructions avant de les envoyer au Serveur Oracle pour exécution. Le PL/ est également compatible avec les outils de développement d applications Oracle tel que Oracle Developer Forms et Reports. En ajoutant la puissance du traitement procédural à ces outils, le PL/ décuple leurs performances. Note : Les procédures et les fonctions déclarées comme parties d une application Developer sont à distinguer de celles qui sont stockées dans la base de données, bien que leur structure générale soit la même. Les sous-programmes stockés sont des objets de la base de données et ils sont stockées dans le dictionnaire de données. On peut y avoir accès à partir d un nombre quelconque d applications, y compris les applications Developer. Les Bases PL/ I-6
Avantages du PL/ Programmation modulaire DECLARE BEGIN EXCEPTION END; I-7 Copyright Oracle Corporation, 1998. All rights reserved. Avantages du PL/ Tirer profit des capacités procédurales du PL/ qui n existent pas dans le. Structure des Blocs PL/ Chaque unité de PL/ comprend un ou plusieurs blocs. Ces blocs peuvent être séparés ou imbriqués. Les unités de base (procédures, fonctions et blocs anonymes) qui composent les programmes PL/ sont des blocs logiques qui peuvent contenir un nombre quelconque de sousblocs. Ainsi un bloc peut constituer une petite partie d un autre bloc qui peut à son tour constituer une partie du code. Dévelopement de Programme Modualaire Regrouper des instructions en relation logique au sein de blocs. Intégrer des sous-blocs dans des blocs plus gros pour construire des programmes puissants. Morceler un problème complexe en un ensemble de modules logiques bien définis et implémenter chaque module à l aide de blocs. Placer le code PL/ réutilisable dans des librairies partagées entre les applications Oracle Developer ou sur le Serveur Oracle afin qu il soit accessible à partir de n importe quelle application en relation avec la base de données Oracle. Les Bases PL/ I-7
Avantages du PL/ Portabilité. Déclaration de variables. I-8 Copyright Oracle Corporation, 1998. All rights reserved. Portabilité Comme le PL/ est originaire du Serveur Oracle, vous pouvez déplacer des programmes vers tout environnement hôte (système d exploitation ou plate-forme) qui supporte le Serveur Oracle et le PL/. En d autres termes, les programmes PL/ peuvent s exécuter partout où le Serveur Oracle peut fonctionner, vous n avez pas besoin de les ajuster à chaque nouvel environnement. Vous pouvez également déplacer le code entre le Serveur Oracle et votre application. Vous pouvez écrire des packages portables et créer des librairies réutilisables sous différents environnements. Déclaration de variables Déclarer des variables, des curseurs, des constantes et des exceptions et les utiliser dans des instructions et PL/. Déclarer des variables appartenant aux types suivants : scalaire, référence, composé et Large Objet(LOB). Déclarer des variables basées dynamiquement sur la structure de données des tables et colonnes de la base de données. Les Bases PL/ I-8
Avantages du PL/ Programmer avec des structures de contrôle des langages procéduraux (traitement conditionnel, traitement répétitif,...) Gestion des erreurs. I-9 Copyright Oracle Corporation, 1998. All rights reserved. Les structures de contrôle des langages procéduraux Exécuter une série d instructions conditionnelles. Exécuter une série d instructions itératives dans une boucle. Traiter individuellement les lignes retournées par une requête multi-lignes, avec un curseur explicite. Gestion des erreurs Traiter les erreurs du Serveur Oracle avec des routines de prise en charge des exceptions. Déclarer les conditions d erreur définies par l utilisateur et les traiter avec des routines de prise en charge des exceptions. Les Bases PL/ I-9
Résumé PL/ est une extension du. Les blocs PL/ sont envoyés et traités par un moteur PL/. Avantages du PL/ : Intégration Amélioration des performances Portabilité Développement modulaire I-10 Copyright Oracle Corporation, 1998. All rights reserved. Les Bases PL/ I-10