PL/SQL per Oracle 40 ore Prerequisiti: conoscere il linguaggio SQL; è gradita la conoscenza della Programmazione strutturata. Obiettivi: saper utilizzare il linguaggio PL/SQL per programmare l'elaborazione dei dati nell'ambiente RDBMS Oracle.
1. Nozioni base su PL/SQL (Procedural Language/Structured Query Language), nesso fra SQL, PL/SQL e SQL*Plus nell'ambiente Oracle. Struttura a blocchi di PL/SQL. Gli scripts di SQL*Plus (files .sql), creazione ed esecuzione di programmi PL/SQL; alcuni comandi di SQL*Plus utili nella scrittura di programmi PL/SQL. Compilazione ed esecuzione di una semplice funzione PL/SQL; commenti.
2. I tipi di dato PL/SQL, convenzioni per gli identificatori, sottotipi; dichiarazione di variabili e costanti, operatore di assegnazione, la clausola DEFAULT. Blocchi PL/SQL: blocchi anonimi, funzioni, procedure e triggers; regole di visibilità (scope) degli identificatori.
3. Espressioni PL/SQL: operatori e la loro precedenza, confronto fra le stringhe e le date, valori nulli e funzione NVL, conversione dei tipi di dato implicita ed esplicita.
4. Istruzione IF...THEN...ELSE, nidificazione ed utilizzo di strutture IF...ELSIF.
5. Cicli (loops): FOR, WHILE e LOOP; nidificazione di cicli; etichette (labels) ed istruzione GOTO; utilizzo delle istruzioni EXIT ed EXIT WHEN; organizzare un ciclo con controllo in coda REPEAT...UNTIL.
6. Funzioni incorporate (built-in functions) di PL/SQL: categorie delle funzioni, funzioni di conversione (Conversion Functions), funzioni di date (Date Functions).
7. Utilizzo di istruzioni SQL con PL/SQL: utilizzo del DML di SQL, utilizzo delle variabili del tipo RECORD. Pseudocolonne.
8. Manipolare i dati con i cursori, cursori espliciti, impliciti ed interni; creazione, apertuta, elaborazione e chiusura di cursori; utilizzo degli attributi dei cursori; ciclo CURSOR FOR. Variabili del tipo CURSOR, utilizzo di cursori con variabili CURSOR.
9. Collections; tipo di dato TABLE (Index-by table); tabelle nidificate (Nested Tables) ed arrays a dimensione variabile (Variable-Sized Arrays o varrays).
10. Eccezioni (exceptions), gestione delle eccezioni, utilizzo delle funzioni SQLCODE e SQLERRM.
11. Sottoprogrammi (subprograms) in PL/SQL; funzioni (functions), passaggio dei parametri e restituzione dei valori; procedure (procedures); ricorsione. Procedure e funzioni registrate (stored procedures & functions); pacchetti (packages); sovraccarico (overloading) di sottoprogrammi.
12. Scrittura di triggers di un database, tipi di triggers, utilizzo e gestione dei triggers.
13. Gestione delle transazioni (transactions) e dei locks.