Rappels sur le PL/SQL
- Types de données prédéfinis.
- Les différents types de curseurs.
- Clause RETURNING du DML.
- Instructions paramétrées.
- Sous-programmes et paquetages applicatifs.
- Transactions autonomes.
- Exceptions.
Travaux pratiques
Ecrire des scripts PL/SQL pour une reprise en main.
Techniques SQL avancées
- Colonnes identité, virtuelles et invisibles.
- Hints pour gérer les doublons.
- Contraintes différées.
- Types et tables objet.
- Tables IOT.
- Tables partitionnées.
- Tables temporaires.
Travaux pratiques
Manipulation des techniques présentées.
Les performances et la gestion du cache
- Variables de lien.
- Tableaux associatifs.
- Traitements de masse avec BULK COLLECT.
- Expressions qualifiées.
- Mise en cache SQL.
- Hint de compilation NOCOPY.
- Fonctions PL/SQL (cache, table, pipelined, polymorphe).
- Macros SQL.
Travaux pratiques
Utiliser les traitements de masse pour améliorer les performances. Vérifier les principaux aspects du cache des résultats de fonction PL/SQL.
Les packages
- Identifier les composants d'un package et les contextes d’applications.
- Utiliser le package STANDARD et les fonctions de package.
- Lire des fichiers avec UTL_FILE. Recompilation des objets avec DBMS_UTILITY.
- Crypter, décrypter et calculer des valeurs de hash avec DBMS_CRYPTO.
- Gérer des erreurs avec le paquetage DBMS_ERRLOG.
- Tracer une application avec DBMS_APPLICATION_INFO.
- Autres packages : dbms_profiler, dbms_pipe, dbms_alert, et dbms_rls.
- Comparer deux implémentations avec DBMS_PROFILER (RUNSTATS_PKG). Contrôler les effets de bord des sous-programmes.
Travaux pratiques
Créer un script intégrant des packages permettant de lire un fichier en gérant les erreurs. Afficher le code source via le dictionnaire. Appeler des tables PL/SQL d'enregistrements dans des packages.
Le SQL dynamique
- Flux d'exécution du code SQL.
- Présentation du code SQL dynamique.
- L’instruction EXECUTE IMMEDIATE.
- Déclarer des variables de curseur. Curseurs dynamiques (REF CURSOR).
- Paquetage DBMS_SQL.
- Conversions de curseurs.
Travaux pratiques
Exécuter dynamiquement un bloc PL/SQL.
Procédures, fonctions stockées, déclencheurs (trigger)
- La conception modulaire. Créer, appeler et supprimer des procédures stockées.
- Implémenter les paramètres de procédure.
- Créer, appeler et supprimer des fonctions stockées. Restrictions liées aux appels de fonctions.
- Déclencheurs DML (FOR EACH ROW et statement).
- Procédure RAISE_APPLICATION_ERROR.
- Déclencheurs INSTEAD OF.
- Déclencheurs combinés (COMPOUND).
Travaux pratiques
Visualiser les informations des procédures à l'aide des vues du dictionnaire. Créer des déclencheurs LMD, INSTEAD OF. Implémenter un déclencheur combiné pour résoudre l'erreur de table en mutation.