Introduction à PL/SQL
- À quoi sert PL/SQL – l’intérêt par rapport au SQL seul
- La structure de bloc : DECLARE, BEGIN, EXCEPTION, END
- Exécuter des blocs anonymes, affichage avec DBMS_OUTPUT
- Outils : SQL Developer et l’extension VS Code pour Oracle
Variables et types de données
- Déclarer des variables et des constantes
- Travailler en toute sécurité de type avec %TYPE et %ROWTYPE
- Types composites : Records
- Portée et visibilité
- Nouveauté de la ligne 23ai/26ai : BOOLEAN comme véritable type de données SQL
SQL au sein de PL/SQL
- SELECT INTO ainsi qu’INSERT, UPDATE et DELETE dans le bloc
- Curseurs implicites et leurs attributs comme SQL%ROWCOUNT
- Contrôle des transactions au sein de PL/SQL
- Utiliser des séquences et des fonctions SQL
Structures de contrôle
- IF, ELSIF et CASE
- Basic Loop, WHILE et FOR, boucles imbriquées
- CONTINUE, EXIT WHEN et labels de boucle
- La boucle Cursor FOR comme modèle standard
Curseurs explicites et Collections
- Déclarer, ouvrir, lire et fermer un curseur
- Curseurs avec paramètres, FOR UPDATE et WHERE CURRENT OF
- Vue d’ensemble des tableaux associatifs, Nested Tables et VARRAYs
- Aperçu de BULK COLLECT et FORALL
Gestion des erreurs
- Exceptions prédéfinies et personnalisées
- RAISE, RAISE_APPLICATION_ERROR et PRAGMA EXCEPTION_INIT
- SQLCODE, SQLERRM et FORMAT_ERROR_BACKTRACE
- Bonnes pratiques pour une gestion des erreurs robuste
Sous-programmes, packages et triggers
- Procédures et fonctions, modes de paramètres IN, OUT et IN OUT
- Développer de manière modulaire plutôt que répéter le code
- Packages : spécification et corps
- Développer et utiliser des triggers
- SQL dynamique avec EXECUTE IMMEDIATE
Débogage, dépendances et perspectives
- Déboguer dans SQL Developer
- Comprendre les dépendances entre objets
- Bases de l’optimisation du code
- Perspectives : SQL Firewall du point de vue du développement, DBMS_VECTOR et Select AI