Blocco PL/SQL: struttura, sintassi ed esempio anonimo
โก Riepilogo intelligente
Il blocco PL/SQL รจ l'unitร base che raggruppa le istruzioni PL/SQL e SQL in modo che vengano eseguite insieme anzichรฉ riga per riga. Ogni blocco ha una sezione di dichiarazione, una di esecuzione e una di gestione delle eccezioni, e i blocchi possono essere anonimi o denominati.

Che cos'รจ un blocco PL/SQL?
In PL/SQL, il codice non viene eseguito in formato a riga singola; viene sempre eseguito in gruppoping il codice in un singolo elemento chiamato blocco. In questo tutorial, imparerai a conoscere questi blocchi.
I blocchi contengono sia istruzioni PL/SQL che istruzioni SQL. Tutte queste istruzioni vengono eseguite nel loro complesso, anzichรฉ una alla volta.
Struttura a blocchi
I blocchi PL/SQL hanno una struttura predefinita in cui il codice รจ raggruppato. Di seguito sono riportate le diverse sezioni di un blocco PL/SQL:
- Sezione dichiarazioni
- Sezione esecuzione
- Sezione Gestione delle eccezioni
L'immagine seguente illustra le diverse sezioni dei blocchi PL/SQL e il loro ordine.
Sezione dichiarazioni
Questa รจ la prima sezione di un blocco PL/SQL ed รจ facoltativa. ร la sezione in cui vengono dichiarate le variabili, i cursori, le eccezioni, i sottoprogrammi, le istruzioni pragma e le collezioni necessarie al blocco. Alcune altre caratteristiche di questa parte:
- Questa sezione รจ facoltativa e puรฒ essere omessa se non sono necessarie dichiarazioni.
- Dovrebbe essere la prima sezione di un blocco PL/SQL, se presente.
- Inizia con la parola chiave 'DECLARE' per i trigger e i blocchi anonimi. Per gli altri sottoprogrammi questa parola chiave non รจ presente; al suo posto, la parte che segue il nome del sottoprogramma indica la sezione di dichiarazione.
- Deve sempre essere seguita dalla sezione di esecuzione.
Sezione Esecuzione
La parte di esecuzione รจ la parte principale e obbligatoria che esegue effettivamente il codice scritto al suo interno. Poichรฉ PL / SQL Si prevede la presenza di istruzioni eseguibili; questo blocco non puรฒ essere vuoto e deve contenere almeno una riga eseguibile valida. Alcune altre caratteristiche di questa parte:
- Puรฒ contenere sia codice PL/SQL che codice SQL.
- Puรฒ contenere al suo interno uno o piรน blocchi annidati.
- Inizia con la parola chiave 'BEGIN'.
- Deve essere seguito da 'END' oppure dalla sezione di gestione delle eccezioni, se presente.
Sezione Gestione delle eccezioni
Le eccezioni sono errori inevitabili che si verificano durante l'esecuzione e per gestirle Oracle Fornisce una sezione per la gestione delle eccezioni in blocchi. Questa sezione puรฒ contenere anche istruzioni PL/SQL ed รจ facoltativa.
- Questa รจ la sezione in cui viene gestita un'eccezione generata nel blocco di esecuzione.
- ร l'ultima parte del blocco PL/SQL.
- Il controllo da questa sezione non puรฒ mai tornare al blocco di esecuzione.
- Inizia con la parola chiave 'ECCEZIONE'.
- Deve sempre essere seguito dalla parola chiave 'END'.
La parola chiave 'END' indica la fine del blocco PL/SQL.
Sintassi del blocco PL/SQL
Di seguito รจ riportata la sintassi della struttura a blocchi PL/SQL.
DECLARE --optional <declarations> BEGIN --mandatory <executable statements. At least one executable statement is mandatory> EXCEPTION --optional <exception handles> END; --mandatory /
Nota: Un blocco deve sempre essere seguito da '/', che invia al compilatore informazioni sulla fine del blocco.
Tipi di blocchi PL/SQL
I blocchi PL/SQL sono principalmente di due tipi:
- Blocchi anonimi
- Blocchi con nome
Di seguito, prima della descrizione di ciascuno, i due vengono messi a confronto in un breve riepilogo.
| Aspetto | Blocco anonimo | Blocco denominato |
|---|---|---|
| Ha un nome | Non | Si |
| Memorizzato nel database | Non | Sรฌ, come oggetto |
| Inizia con | DICHIARARE o INIZIARE | CREA |
| Riutilizzabile | Solo nella stessa sessione | Chiamabile in qualsiasi momento |
Blocchi anonimi
I blocchi anonimi sono blocchi PL/SQL a cui non รจ stato assegnato alcun nome. Devono essere creati e utilizzati nella stessa sessione perchรฉ non vengono memorizzati sul server come oggetti del database.
Poichรฉ non vengono memorizzati nel database, non necessitano di una fase di compilazione separata. Vengono scritti ed eseguiti direttamente, e la compilazione e l'esecuzione avvengono in un unico processo. Alcune altre caratteristiche:
- Questi blocchi non hanno un nome di riferimento.
- Iniziano con la parola chiave 'DECLARE' o 'BEGIN'.
- Poichรฉ non hanno un nome di riferimento, non possono essere memorizzati per un utilizzo successivo e devono essere creati ed eseguiti nella stessa sessione.
- Possono richiamare altri blocchi con nome, ma non รจ possibile richiamare un blocco anonimo, poichรฉ non ha alcun riferimento.
- Possono contenere un blocco annidato, denominato o anonimo, e possono anche essere annidati all'interno di qualsiasi altro blocco.
- Possono essere presenti tutte e tre le sezioni, di cui la sezione di esecuzione รจ obbligatoria e le altre due sono facoltative.
Blocchi con nome
I blocchi denominati hanno un nome specifico e univoco. Vengono memorizzati come oggetti di database sul server, quindi possono essere richiamati o utilizzati finchรฉ sono presenti. Il processo di compilazione per i blocchi denominati avviene separatamente quando vengono creati come oggetti di database. Alcune caratteristiche aggiuntive:
- Questi blocchi possono essere richiamati da altri blocchi.
- La struttura del blocco รจ la stessa di un blocco anonimo, tranne per il fatto che non inizia mai con 'DECLARE'. Inizia invece con 'CREATE', che indica al compilatore di crearlo come oggetto del database.
- Questi blocchi possono essere annidati all'interno di altri blocchi e possono a loro volta contenere blocchi annidati.
- I blocchi con nome sono fondamentalmente di due tipi:
- Procedura
- Funzione
Puoi saperne di piรน su questi blocchi denominati nella guida a procedure e funzioni.


