Programmer avec PL/SQL

Programmer avec PL/SQL

Les avantages de PL/SQL PL/SQL, langage de programmation éprouvé, offre de nombreux avantages : • intégration parfaite du SQL ; =Briard.Livre Page 327 Mardi, 21. février 2006 1:46 13 Outils et langages de programmation PARTIE IV 328 • support de la programmation orientée objet ; • très bonnes performances ; • portabilité ; • facilité de programmation ; • parfaite intégration à Oracle 10g et à Java. Intégration parfaite du SQL SQL est devenu le langage d’accès aux bases de données parce qu’il est standard, puissant et simple d’apprentissage. De très nombreux outils en ont popularisé l’utilisation. PL/SQL permet de réaliser des traitements complexes sur les données contenues dans une base Oracle 10g d’une façon simple, performante et sécurisée. Support de la programmation orientée objet Les types objet proposent une approche aisée et puissante de la programmation objet. En encapsulant les données avec les traitements, ils offrent au PL/SQL une programmation qui s’appuie sur des méthodes. Dans la programmation objet, l’implémentation des méthodes est indépendante de leur appel, ce qui constitue un avantage. On peut ainsi modifier des méthodes sans affecter l’application cliente. Ces points sont détaillés au chapitre 20, Java et Oracle 10g. Très bonnes performances Ce ne sont plus des ordres SQL qui sont transmis un à un au moteur de base de données Oracle 10g, mais un bloc de programmation. Le traitement des données est donc interne à la base, ce qui réduit considérablement le trafic entre celle-ci et l’application. Combiné à l’optimisation du moteur PL/SQL, cela diminue les échanges réseau et augmente les performances globales de vos applications. Le moteur PL/SQL d’Oracle 10g a été optimisé et les performances de traitement sont accrues. Portabilité Toutes les bases de données Oracle 10g comportent un moteur d’exécution PL/SQL. Comme Oracle 10g est présent sur un très grand nombre de plates-formes matérielles, le PL/SQL permet une grande portabilité de vos applications. Facilité de programmation PL/SQL est un langage simple d’apprentissage et de mise en œuvre. Sa syntaxe claire offre une grande lisibilité en phase de maintenance de vos applications. De nombreux outils de développement, autres que ceux d’Oracle 10g, autorisent la programmation en PL/SQL dans la base de données

Survol de PL/SQL

Une manière simple d’aborder le PL/SQL est d’observer quelques-unes des utilisations qui en sont faites. Dans l’exemple 1, un programme PL/SQL consulte le salaire de l’employé SCOTT et en conserve la valeur dans une variable. Si cette variable est inférieure à 1 000, SCOTT bénéficie d’une augmentation de 10 %. Si cette variable est supérieure à 1 000, on ajoute 100 à la commission dont bénéficie SCOTT. — PL/SQL Exemple 1 DECLARE v_salaireNUMBER(7);– variable locale BEGIN SELECT sal INTO v_salaire FROM emp WHERE ename = ‘SCOTT’ FOR UPDATE OF sal; IF v_salaire < 1000 THEN — test sur le salaire UPDATE emp SET sal = sal*1,1 WHERE ename = ‘SCOTT’; — augmentation de 10% ELSE UPDATE emp SET comm = comm + 100 WHERE ename = ‘SCOTT’ ; END IF; COMMIT; END; Ici, le langage SQL permet de rechercher et de mettre à jour des données tout en contrôlant les modifications apportées suivant les conditions exprimées par le PL/SQL. Le langage SQL est « ensembliste », c’est-à-dire qu’il ne manipule qu’un ensemble de données satisfaisant des critères de recherche. PL/SQL est « procédural » il permet de traiter de manière conditionnelle les données retournées par un ordre SQL. Vous ne pourriez pas résoudre aussi simplement, en SQL « pur », un traitement tel que celui de l’exemple 1. =Briard.Livre Page 329 Mardi, 21. février 2006 1:46 13 Outils et langages de programmation PARTIE IV 330 Une structure de « bloc » Le PL/SQL n’interprète pas une commande, mais un ensemble de commandes contenues dans un « bloc » PL/SQL. Ce bloc peut comporter plusieurs « sous-blocs ». Sa structure est simple d’apprentissage et lisible en termes de maintenance de programmes. Les sections indispensables d’un bloc sont le BEGIN et le END. Elles peuvent être précédées d’une zone optionnelle de déclaration de variables, DECLARE, puis d’une zone optionnelle de traitement des erreurs, EXCEPTION. DECLARE — zone de déclaration de variables BEGIN — traitements … EXCEPTION — traitement des erreurs rencontrées END; Les variables PL/SQL PL/SQL permet de déclarer des variables et des constantes, puis de les utiliser dans des ordres SQL ou des traitements. Seul impératif président à l’utilisation d’une variable : elle doit d’abord être déclarée. Cette déclaration s’effectue dans la zone DECLARE. DECLARE v_texteVARCHAR(30); BEGIN … v_texte := ‘Texte que je manipule.’; … END; Les structures de contrôle C’est l’une des plus importantes caractéristiques de PL/SQL. Ces structures permettent de contrôler l’exécution des ordres SQL et de traiter de façon procédurale les données. Les principales structures sont les suivantes : • IF-THEN-ELSE ; • FOR-LOOP ; • WHILE-LOOP ; • EXIT-WHEN ; • GOTO (peu utilisé). Les syntaxes des différents ordres sont développées dans ce chapitre.Les curseurs Oracle 10g utilise des espaces de travail pour exécuter les ordres SQL et en manipuler les données. Une instruction PL/SQL, le curseur, permet d’attribuer des noms à ces espaces de travail et d’accéder aux données contenues. Il existe deux sortes de curseurs : les curseurs implicites et explicites. Le PL/SQL crée de manière implicite un curseur pour chaque ordre SQL, même pour ceux qui ne renvoient qu’une ligne. Pour les curseurs qui renvoient plus d’un enregistrement, vous pouvez déclarer explicitement un curseur, afin de manipuler individuellement les lignes retournées. Les curseurs sont abordés dans le détail dans ce chapitre. La modularité PL/SQL permet d’écrire des programmes modulaires, faciles à réaliser et à maintenir. On peut scinder un problème complexe en un ensemble de sous-programmes simples, grâce aux procédures et aux fonctions. Par-delà les blocs et leurs sous-programmes, PL/SQL propose les PACKAGES, qui permettent de regrouper un ensemble de programmes liés sous une même appellation, avec une partie « privée » (accessible uniquement par les procédures et fonctions internes au package) et une partie « publique » (accessible par les procédures et fonctions externes au package). Les attributs Cette possibilité est fort utile. Elle fait référence aux caractéristiques d’une colonne de table (par exemple) et d’en récupérer automatiquement le type. Si le schéma de la base de données se trouve modifié (zone textuelle augmentée, zone numérique incorporant plus de décimales…), la variable en PL/SQL hérite d’emblée de ces modifications. Ce type a aussi le mérite de simplifier l’écriture de vos programmes. Par exemple, pour déclarer une variable v_nom destinée à contenir le nom d’un employé de la table emp, on utilise le type %TYPE : v_nom emp.ename%TYPE ; Pour déclarer un enregistrement, il faut avoir recours au type %ROWTYPE. Dans ce cas, comme l’on récupère dans un enregistrement l’ensemble des colonnes définies dans le curseur, il n’y a pas de référence à une colonne précise dans la déclaration : il convient donc de préciser l’identifiant de l’enregistrement ainsi que celui de la colonne considérée. Le nom de la colonne est identique à celui de l’ordre SQL rec_employe emp.%ROWTYPE ; … v_nom_employe := rec_employe.ename ; L’ouverture PL/SQL permet d’utiliser des procédures externes (EXTERNAL PROCEDURE), c’està-dire un programme écrit en L3G, généralement le langage C. Les applications cibles sont très spécifiques et se rapprochent souvent des applications temps réel, scientifiques =Briard.Livre Page 331 Mardi, 21. février 2006 1:46 13 Outils et langages de programmation PARTIE IV 332 ou de traitement d’images. L’appel de cette procédure externe peut s’effectuer à partir d’un bloc PL/SQL. C’est une possibilité très puissante : vous avez la possibilité de déclencher depuis la base de données des traitements extérieurs à la base. Un accès aux données relationnelles-objet Oracle 10g est une base relationnelle qui offre des possibilités de stockage d’objets. À ce titre, PL/SQL propose des syntaxes permettant de manipuler des objets.

LIRE AUSSI :  Support de cours SQL Server

Formation et coursTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *