Oracle - Développer avec Oracle PL/SQL

Bases de données   

Objectifs

Acquérir les compétences pour développer des programmes PL/SQL pour accéder aux bases Oracle et créer des procédures stockées et des fonctions pour une réuilisation maximale et une maintenance du code minimale et concevoir des applications modulaires avec des packages. Gérer la récupération des données pour les applications frontales et invoquer du SQL Dynamique natif pour créer du code de haut niveau.

Methodes et outils pédagogiques

  • Alternance exposés théoriques et exercices pratiques (80% pratique)
  • Support de cours adapté au niveau suivi

Evaluation

  • Tout au long de la formation, exercices pratiques permettant au formateur la validation des acquis et des compétences

Public concerné

Programmeurs ou tout autre utilisateur de PL/SQL.

Pré-requis

Avoir des connaissances pratiques de SQL et PL/SQL.

3 jours
Prochaine session

Introduction et vue d'ensemble

  • Les bases du PL/SQL : Déclaration des variables ; Lier les variables aux définitions de la base ; Instructions de contrôle de flux
  • Fonctions PL/SQL d'Oracle 11g et 12c : TPL/Scope dans Oracle 11g ; Retourner des résultats du curseur implicite à partir de procédures stockées dans Oracle 12c ; Déclarer des fonctions locales au sein des instructions SELECT dans Oracle 12c

Techniques de manipulation des données

  • Gestion des données avec les instructions DML : Utilisation de la clause RETURNING INTO ; Résolution du problème d'extraction à travers les COMMIT
  • Gestion de la récupération des données avec les curseurs : Curseurs implicites et explicites ; Attributs des curseurs ; Simplification du traitement de curseurs avec FOR LOOP ; Intégration d'expressions curseurs dans des instructions SELECT
  • Variables curseurs : Variables curseurs faiblement ou fortement typées ; Passage des variables curseurs vers d'autres programmes ; Définition de REF CURSORS dans les packages

Développement de code bien structuré et sans erreur

  • Gestion des erreurs avec les EXCEPTIONs : EXCEPTIONs prédéfinies et définies par l'utilisateur ; Propagation et portée ; Soumettre de nouveau une transaction en erreur avec le traitement EXCEPTION
  • Débogage des blocs PL/SQL : Simplification du test et du débogage grâce à la compilation conditionnelle ; Interprétation des messages du compilateur ; Utilisation de techniques de test structurées

Obtenir une réutilisation maximale

  • Écriture de fonctions et de procédures stockées : Invocation d'une logique côté serveur ; Passage de paramètres en entrée et en sortie ; Mise en oeuvre d'une transaction autonome ; Droits du propriétaire vs. de l'appelant
  • Codage de fonctions utilisateur : Appel des fonctions PL/SQL à partir du SQL ; Construction de fonctions valeur table
  • Développement de triggers sécurisés : Variables OLD et: NEW dans les triggers de niveau ligne ; Mise en oeuvre de règles de gestion complexes ; Éviter les éléments peu fiables dans les triggers ; Exploitation de triggers de niveau base de données et schéma

Exploitation de types de données complexes

  • Types collections : Tables PL/SQL, imbriquées, VARRAYs ; Collections denses et non-consécutives
  • Transfert de données en masse : Échange de données entre blocs PL/SQL ; BULK COLLECT INTO ; FOR ALL ; Attributs curseurs BULK; Traitement de BULK EXCEPTION

Invocation de SQL dynamique natif

  • Bien manipuler le compilateur : L'instruction EXECUTE IMMEDIATE ; La clause RETURNING INTO
  • Types de SQL dynamique : Construction d'instructions SQL au moment de l'exécution ; Génération automatique de code standard

Techniques avec les packages

  • Structure des packages: spécification et corps
  • Suppression des problèmes de dépendance
  • Surcharge pour des effets polymorphiques
  • Évaluation des structures d'application
  • Packages sans corps pour stocker toutes les définitions de l'application
  • Déclaration et utilisation de variables globales et persistantes