Ce cours s’adresse aux développeurs ou administrateurs Oracle qui veulent maîtriser la programmation PL/SQL et faire les choix de programmation adaptés à leurs besoins. Il est important de savoir que les fonctionnalités avancées d’Oracle nécessitent généralement des connaissances PL/SQL. Afin de pouvoir tirer profit de ce cours, il est nécessaire d’avoir des bonnes connaissances d’Oracle et particulièrement le langage SQL. Des connaissance de la programmation avec un langage de haut niveau sont également indispensables.
Introduction et rappels
- Outils utilisés : sqlplus et SQL Developer.
- Introduction aux transactions.
- Rappels sur les types d’Oracle.
- Fonctions prédéfinies.
- Survol de PL/SQL.
- Objets d’une base Oracle.
Éléments du langage PL/SQL
- Première approche pratique au langage.
- Introduction syntaxique à PL/SQL.
- Types et conversion des types.
- Instructions composées de PL/SQL.
- Définition des sous-programmes.
- Paramètres de sous-programmes.
- Types composites dans PL/SQL.
- Introduction à la gestion des erreurs.
Travaux pratiques : la conversion des types, les sous-programmes, les records, les collections
Accès à la base Oracle
- Interaction entre PL/SQL et la base Oracle.
- Utilisation du curseur implicite.
- Utilisation du curseur explicite.
- Utilisation de BULK COLLECT.
- Utilisation de FORALL.
- Utilisation des variables curseurs.
Travaux pratiques : Curseurs implicites, curseurs explicites, BULK COLLECT, FORALL, variables curseurs.
Traitements stockés
- Sous-programmes stockés : procédures et fonctions.
- Création et utilisation de packages.
- Gestion des traitements stockés.
- Utilisation des curseurs explicites dans les packages.
- État d’un package et utilisation de la directive SERIALLY_REUSABLE.
- Gestion des effets de bord et utilisation des traitements stockés dans SQL.
- Utilisation du cache de résultat pour les fonctions.
- Contextes d’applications.
- Contextes d’applications globaux.
Travaux pratiques : les travaux pratiques concernent l’ensemble des points énumérés.
Gestion des erreurs
- Traitement des erreurs sans exception associée : fonctions SQLCODE et SQLERRM.
- Provocation intentionnelle d’erreur : RAISE et RAISE_APPLICATION_ERROR.
- Atomicité des opérations et propagation des erreurs.
Travaux pratiques: usage de SQLCODE et de SQLERRM, usage de RAISE_APPLICATION_ERROR.
Triggers
- Triggers sur événements LMD.
- Triggers de niveau instruction.
- Triggers de niveau ligne.
- Atomicité des opérations et modèle d’exécution des triggers LMD.
- Triggers E/C/A et utilisation de la clause WHEN.
- Triggers sur instructions LDD.
- Triggers sur événemets système.
- Triggers LMD composites.
Travaux pratiques : les travaux pratiques concernent l’ensemble des rubriques énumérées.
PL/SQL et l’extension objet/relationnelle
- Modèle relationnel étendu dans Oracle.
- Types abstraits et instruction CREATE TYPE.
- Usage des tables imbriquées (NESTED TABLEs)
- Utilisation de l’opérateur MULTISET
- Expression CURSOR et les tables imbiquées.
- Utilisation des vecteurs à taille variable (VARRAYs)
- Partage d’objets : utilisation de REF.
Travaux pratiques : les travaux pratiques concernent l’ensemble des rubriques énumérées.
Techniques et fonctionnalités utiles de PL/SQL
- Gestion des droits sur les traitements stockés.
- Transactions et PL/SQL, transactions autonomes.
- Intérêt de l’imbrication des blocs PL/SQL.
- Les différentes techniques d’utilisation de SQL dynamique.
- Sécurisation et défense contre l’injection SQL.
- Utilisation des fonctions déterministes (DETERMINISTIC).
- Utilisation des fonctions PIPELINED.
- Fonctions retournant une collection et curseurs.
- Utilisation du cache de résultat pour les fonctions.
- Utilisation de DBMS_APPLICATION_INFO.
- Utilisation du package DBMS_PIPE.
- Utilisation du package DBMS_ALERT.
- Utilisation du package DBMS_RLS (Row Level Security).
- Utilisation du package UTL_FILE.
- Utilisation du package DBMS_LOB.
- Utilisation du package DBMS_SCHEDULER.
Travaux pratiques : les travaux pratiques concernent l’ensemble des rubriques énumérés.
Compilation et débogage
- Compilation conditionnelle.
- Paramètres de compilation.
- Recompilation des traitements stockés.
- Débogage d’un traitement stocké en utilisant SQL Developer.
Travaux pratiques : recompilation des traitements stockés, débogage d’un traitement stocké.