Oracle PL/SQL

Objectif : Le langage PL/SQL pour Oracle — une extension procédurale souple de SQL — augmente la productivité, la performance, l'évolutivité, la portabilité et la sécurité. Lors de cette formation, vous acquerrez les connaissances pratiques pour écrire des programmes PL/SQL. Vous apprendrez à créer des procédures stockées, à concevoir et exécuter des applications modulaires ainsi qu'à assurer le mouvement de données.

 

Vous apprendrez à

  • Développer des programmes PL/SQL efficaces pour accéder aux bases Oracle
  • Créer des procédures stockées et des fonctions pour une réutilisation maximale et une maintenance du code minimale
  • Concevoir des applications modulaires avec des packages
  • Gérer la récupération des données pour les applications frontales
  • Utiliser les collections pour transférer des données en masse et améliorer les performances
  • Invoquer du SQL dynamique natif pour développer du code de haut niveau

 

À qui s'adresse cette formation

Programmeurs et tous ceux qui utilisent PL/SQL. Des connaissances pratiques de la formation O10 : Développement de requêtes SQL pour les bases de données Oracle, sont nécessaires.

 

Travaux Pratiques

Grâce aux exercices, vous acquerrez une expérience pratique de l'écriture de code PL/SQL :

  • Intégration des instructions de manipulation de données dans des procédures stockées et des packages
  • Manipulation complexe de données avec des curseurs
  • Utilisation des EXCEPTIONs pour gérer les erreurs d'exécution
  • Création de triggers pour l'intégrité et le calcul des données dérivées
  • Utilisation de variables curseurs pour le SQL dynamique
  • Dénormalisation des données avec des fonctions écrites par l'utilisateur
  • Création de variables dans les packages sans corps pour le traitement des sessions

 

Contenu du stage PL/SQL de ORACLE

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 9i et 10g

  • Transfert de données en masse en SQL dynamique natif
  • Structure de contrôle CASE
  • Référencer des enregistrements PL/SQL dans des ordres DML
  • Amélioration des performances grâce à la compilation native
  • Gestion des expressions régulières avec les fonctions d'Oracle 10g
  • Tableaux associatifs indicés par VARCHAR2
  • Opérateurs ensemblistes pour les collections

 

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

 

Récupération 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

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 œuvre 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

  • Utilisation des variables : OLD et : NEW dans les triggers de niveau ligne
  • Mise en œuvre de règles de gestion complexes
  • Éviter les éléments peu fiables dans les triggers
  • Exploitation de nouveaux triggers de niveau base de données et schéma

 

Exploitation 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

Les nouvelles instructions

  • 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