Il corso è incentrato sui concetti avanzati di PL/SQL: le collezioni, l’implementazione dei VPD, l’interazione con le procedure esterne (C e Java) oltre alla tecniche ed ai concetti di progettazione ed analisi del codice, di misura e miglioramento delle prestazioni, di difesa dagli “attacchi di SQL Injection”.
Il corso si rivolge principalmente a: Amministratore di database, Sviluppatori di applicazioni, Sviluppatore PL/SQL
È indispensabile la conoscenza del linguaggio PL/SQL a livello base.
Revisione dei concetti fondamentali di PL/SQL
- Blocchi anonimi, procedure e funzioni
- I package
- I cursori
- Le eccezioni
- Le dipendenze tra gli oggetti del DB
Le variabili cursore
Tipi e sottotipi
- Significato, definizione ed utilizzo
Le collezioni
- Array associativi
- Nested Tables
- Varrays
I LOB
- Significato e componenti
- LOB interni ed esterni
- Il package DBMS_LOB
- I modelli di storage BasicFile e SecureFile
Richiamare ed eseguire procedure esterne
- Richiamare ed eseguire una funzione C
- Richiamare ed eseguire un metodo di una classe Java
Miglioramento delle prestazioni del codice PL/SQL
- Compilazione interpretata e nativa
- Come scrivere un buon codice
- Inlining
- Result caching (di istruzioni SQL e funzioni PL/SQL)
Analisi del codice PL/SQL
- I report di SQL Developer
- I package DBMS_DESCRIBE e DBMS_UTILITY
- PL/Scope
- Il package DBMS_METADATA
- Tracciare l’esecuzione del codice
- Usare il PL/SQL Hierarchical Profiler
Virtual Private Database (VPD)
- Significato e implementazione
SQL Injection
- Significato e tipologie
- Strategie di difesa
- Il package DBMS_ASSERT