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