Description Ce cours s'adresse aux utilisateurs d'Oracle8i, Oracle9i et Oracle Database10g.
Ce cours s'adresse aux développeurs déjà familiarisés avec les langages SQL et PL/SQL qui veulent développer des procédures stockées, des fonctions, des packages et des déclencheurs de base de données. Les stagiaires vont également apprendre à gérer des programmes PL/SQL, à gérer des dépendances, à manipuler des objets de grande taille et à utiliser quelques-uns des packages fournis par Oracle. Pour développer ces programmes, ils utiliseront iSQL*Plus. JDeveloper est présenté comme un outil facultatif. Des démonstrations et des exercices pratiques viennent consolider les connaissances de base.
Objectifs
Créer des sous-programmes surchargés pour plus de flexibilité
Ecrire du code SQL dynamique pour une plus grande souplesse de codage
Classer les packages PL/SQL fournis par Oracle en catégories
Utiliser l'infrastructure des avertissements du compilateur
Créer des procédures et des fonctions stockées
Créer des déclencheurs (triggers) pour résoudre des difficultés
Gérer les dépendances entre sous-programmes PL/SQL
Manipuler des objets de grande taille
Planifier l'exécution indépendante de travaux PL/SQL
Concevoir du code PL/SQL pour des types de données prédéfinis, des sous-programmes locaux, des pragmas supplémentaires et des constantes ou exceptions normalisées
Concevoir des packages PL/SQL pour regrouper et contenir des structures connexes
Utiliser les packages PL/SQL fournis par Oracle pour générer une sortie sur écran, ou une sortie sous forme de fichier, de page Web ou de message électronique
SOMMAIRE
Introduction
Développer des programmes modulaires avec des blocs PL/SQL
Décrire le jeu de données Human Resources (HR)
Montrer l'environnement PL/SQL (bloc PL/SQL, moteur PL/SQL, serveur Oracle et programme d'exécution des instructions)
Ecrire du code PL/SQL dans l'environnement iSQL*Plus
Ecrire du code PL/SQL dans l'environnement SQL*Plus
Ecrire du code PL/SQL dans l'environnement JDeveloper
Créer et appeler des procédures et fonctions simples
Créer des procédures stockées
Décrire la structure des blocs pour les procédures stockées PL/SQL
Appeler une procédure/fonction stockée à partir d'outils différents
Appeler une procédure stockée avec des variables hôtes à partir de iSQL*Plus, Forms, Java, C, etc.
Appeler une procédure stockée à partir d'un bloc anonyme ou d'une autre procédure stockée
Afficher la syntaxe de CREATE OR REPLACE PROCEDURE
Identifier les étapes du développement d'une procédure stockée
Utiliser la commande SHOW ERRORS
Afficher le code source dans la vue du dictionnaire USER_SOURCE
Créer des fonctions stockées
Décrire les fonctions stockées
Afficher la syntaxe de CREATE OR REPLACE FUNCTION
Identifier les étapes à suivre pour créer une fonction stockée
Créer une fonction stockée dans iSQL*Plus
Exécuter une fonction stockée
Identifier les avantages de l'utilisation de fonctions stockées dans les instructions SQL
Identifier les restrictions liées à l'appel de fonctions à partir d'instructions SQL
Supprimer une fonction
Créer des packages
Enumérer les avantages des packages
Décrire les packages
Montrer les composants d'un package
Représenter graphiquement la visibilité des structures au sein d'un package
Développer un package
Créer la spécification d'un package
Déclarer les structures publiques
Créer le corps du package
Autres concepts liés aux packages
Enumérer les avantages de la surcharge
Montrer un exemple de surcharge
Utiliser des pré-déclarations dans les packages
Créer une procédure à exécution unique (initialisation du code du package)
Enumérer les restrictions imposées aux fonctions de package utilisées dans SQL
Démonstration de l'encapsulation de code dans un package
Appeler une fonction de package définie par l'utilisateur à partir d'une instruction SQL
Exploiter l'état persistant des variables du package
Exploiter les packages fournis par Oracle pour le développement d'applications
Enumérer les diverses utilisations des packages fournis par Oracle
Réutiliser le code des packages existants pour effectuer diverses tâches de développement ou d'administration de base de données
Utiliser la commande DESCRIBE pour afficher les spécifications du package et la surcharge
Expliquer le fonctionnement de DBMS_OUTPUT (en conjonction avec SET SERVEROUPUT ON)
Interagir avec les fichiers du système d'exploitation via UTL_MAIL
Décrire le traitement des fichiers avec UTL_FILE
Réviser les routines et exceptions UTL_FILE
Utiliser UTL_FILE pour générer un état sous forme de fichier
SQL dynamique et métadonnées
Décrire l'utilisation du code SQL dynamique natif
Enumérer les étapes d'exécution du code SQL
Syntaxe de l'instruction EXECUTE IMMEDIATE pour le code SQL dynamique natif
Créer une procédure qui génère du code SQL dynamique natif en utilisant EXECUTE IMMEDIATE pour supprimer les lignes d'une table
Créer une procédure qui génère du code SQL dynamique utilisant l'instruction EXECUTE IMMEDIATE pour compiler du code PL/SQL
Décrire le package DBMS_SQL
Fournir un exemple de DBMS_SQL
Enumérer les avantages du code SQL dynamique natif par rapport au package DBMS_SQL
Considérations de conception relatives au code PL/SQL
Normaliser les constantes à l'aide d'un package de constantes
Normaliser les exceptions à l'aide d'un package de traitement des exceptions
Sous-programmes locaux
Utiliser des sous-programmes locaux
Suivre les erreurs d'exécution à l'aide d'un package d'exceptions
Décrire le hint NOCOPY
Utiliser le hint NOCOPY
Expliquer les effets de NOCOPY
Gestion des dépendances
Définir les objets dépendants et les objets référencés
Représenter graphiquement les dépendances à l'aide de code, de vues, de procédures et de tables
Gérer les dépendances locales entre une procédure, une vue et une table
Analyser un scénario de dépendances locales
Afficher des dépendances directes à l'aide de la vue USER_DEPENDENCIES
Exécuter le script UTL_DTREE.SQL pour créer des objets qui permettent d'afficher les dépendances directes et indirectes
Afficher les dépendances à partir de la vue DEPTREE
Prévoir l'effet des modifications apportées aux objets dépendants
Manipulation d'objets de grande taille (LOB)
Décrire un LOB (Large OBject)
Représenter graphiquement l'anatomie d'un LOB
Gérer et décrire les fonctionnalités liées aux LOB internes
Décrire, gérer et sécuriser des fichiers BFILE
Créer et utiliser l'objet DIRECTORY pour accéder à des fichiers BFILE et les utiliser
Préparer des fichiers BFILE en vue de leur utilisation
Utiliser la fonction BFILENAME pour charger des fichiers BFILE
Décrire le package DBMS_LOB
Créer des déclencheurs (triggers)
Décrire les différents types de déclencheur et leur mode d'exécution
Enumérer les avantages et les conseils relatifs à l'utilisation de déclencheurs de base de données
Expliquer l'exécution des déclencheurs avec un exemple de déclencheur de base de données élémentaire
Expliquer la syntaxe et créer des déclencheurs LMD, énumérer les composants des déclencheurs LMD
Expliquer l'ordre d'exécution des déclencheurs
Créer une instruction LMD et des déclencheurs de niveau ligne
Utiliser les qualificatifs OLD et NEW pour faire référence aux valeurs des colonnes
Utiliser des prédicats conditionnels avec des déclencheurs
Applications des déclencheurs
Créer des déclencheurs pour des événements LDD comme CREATE, ALTER et DROP
Créer des déclencheurs pour des événements système comme SERVERERROR, STARTUP, SHUTDOWN, LOGON et LOGOFF
Montrer un exemple de déclencheur LOGON et LOGOFF
Utiliser l'instruction CALL pour appeler une procédure stockée à partir d'un déclencheur
Définir une table en mutation
Montrer un exemple de code de table en mutation
Décrire des scénarios d'application professionnels utilisant des déclencheurs
Décrire les privilèges requis pour gérer des déclencheurs
Comprendre et influencer le fonctionnement du compilateur PL/SQL
Décrire les fonctionnalités du compilateur PL/SQL dans Oracle Database 10g
Enumérer les caractéristiques de la compilation native
Identifier les 3 paramètres utilisés pour influencer la compilation (PLSQL_CODE_TYPE, PLSQL_DEBUG, PLSQL_OPTIMIZE_LEVEL)
Montrer comment définir ces paramètres
Décrire les vues du dictionnaire de données servant à vérifier comment le code est compilé (USER_PLSQL_OBJECTS)
Modifier les valeurs des paramètres, recompiler le code, afficher les résultats
Décrire l'infrastructure des avertissements du compilateur dans Oracle Database 10g
Enumérer les étapes permettant de définir les niveaux d'avertissement du compilateur