Sommario: in questo tutorial, imparerete il blocco anonimo PL/SQL e come eseguirlo usando gli strumenti SQL*Plus e SQL Developer.
Guida al blocco anonimo PL/SQL
PL/SQL è un linguaggio strutturato a blocchi il cui codice è organizzato in blocchi. Un blocco PL/SQL consiste di tre sezioni: dichiarazione, eseguibile e gestione delle eccezioni. In un blocco, la sezione eseguibile è obbligatoria mentre le sezioni di dichiarazione e di gestione delle eccezioni sono opzionali.
Un blocco PL/SQL ha un nome. Funzioni o procedure sono un esempio di un blocco con nome. Un blocco con nome viene salvato nel server Oracle Database e può essere riutilizzato in seguito.
Un blocco senza nome è un blocco anonimo. Un blocco anonimo non viene salvato nel server di Oracle Database, quindi è solo per un uso una tantum. Tuttavia, i blocchi anonimi PL/SQL possono essere utili per scopi di test.
L’immagine seguente illustra la struttura di un blocco PL/SQL:
1) Sezione dichiarazione
Un blocco PL/SQL ha una sezione dichiarazione dove si dichiarano le variabili, si alloca la memoria per i cursori, e si definiscono i tipi di dati.
2) Sezione eseguibile
Un blocco PL/SQL ha una sezione eseguibile. Una sezione eseguibile inizia con la parola chiave BEGIN
e finisce con la parola chiave END
. La sezione eseguibile deve avere almeno un’istruzione eseguibile, anche se è l’istruzione NULL
che non fa nulla.
3) Sezione di gestione delle eccezioni
Un blocco PL/SQL ha una sezione di gestione delle eccezioni che inizia con la parola chiave EXCEPTION
. La sezione di gestione delle eccezioni è dove si catturano e si gestiscono le eccezioni sollevate dal codice nella sezione di esecuzione.
Nota che un blocco stesso è una dichiarazione eseguibile, quindi puoi annidare un blocco dentro altri blocchi.
esempio di blocco anonimo PL/SQL
L’esempio seguente mostra un semplice blocco anonimo PL/SQL con una sezione eseguibile.
La sezione eseguibile chiama la procedura DMBS_OUTPUT.PUT_LINE
per visualizzare il messaggio "Hello World"
sullo schermo.
Eseguire un blocco anonimo PL/SQL usando SQL*Plus
Una volta che hai il codice di un blocco anonimo, puoi eseguirlo usando SQL*Plus, che è un’interfaccia a riga di comando per eseguire istruzioni SQL e blocchi PL/SQL forniti da Oracle Database.
L’immagine seguente illustra come eseguire un blocco PL/SQL usando SQL*Plus:
Prima di tutto, collegati al server Oracle Database usando un nome utente e una password.
In secondo luogo, attivate l’output del server usando il comando SET SERVEROUTPUT ON
in modo che la procedura DBMS_OUTPUT.PUT_LINE
visualizzi il testo sullo schermo.
In terzo luogo, digitate il codice del blocco e inserite una barra ( /
) per istruire SQL*Plus ad eseguire il blocco. Una volta digitata la barra in avanti (/), SQL*Plus eseguirà il blocco e visualizzerà il messaggio Hello World
sullo schermo come mostrato nelle illustrazioni.
Nota che devi eseguire il comando SET SERVEROUTPUT ON
in ogni sessione che ti connetti al database Oracle per mostrare il messaggio usando la procedura DBMS_OUTPUT.PUT_LINE
.
Per eseguire di nuovo il blocco che avete inserito, usate il comando /
invece di digitare tutto da capo:
Se volete modificare il blocco di codice, usate il comando edit
. SQL*Plus scriverà il blocco di codice in un file e lo aprirà in un editor di testo come mostrato nell’immagine seguente:
È possibile modificare il contenuto del file come segue:
E salvare e chiudere il file. Il contenuto del file sarà scritto nel buffer e ricompilato.
Dopodiché, puoi eseguire di nuovo il blocco di codice, userà il nuovo codice:
Esegui un blocco PL/SQL anonimo usando SQL Developer
Prima, collegati al server Oracle Database usando Oracle SQL Developer.
In secondo luogo, crea un nuovo file SQL chiamato anonymous-block.sql
residente nella directory C:\plsql
che memorizzerà il codice PL/SQL.
In terzo luogo, inserisci il codice PL/SQL ed eseguilo cliccando il pulsante Execute o premendo la scorciatoia da tastiera Ctrl-Enter.
Altri esempi di blocco anonimo PL/SQL
In questo esempio, prima dichiariamo una variabile l_message
che contiene il messaggio di saluto. E poi, nella sezione di esecuzione, usiamo la procedura DBMS_OUTPUT.PUTLINE
per mostrare il contenuto di questa variabile invece di usare una stringa letterale.
Ecco l’output:
Hello World!
Il prossimo esempio di blocco anonimo aggiunge una sezione di gestione delle eccezioni che cattura ZERO_DIVIDE
eccezione sollevata nella sezione eseguibile e visualizza un messaggio di errore.
Il messaggio di errore è:
ORA-01476: divisor is equal to zero
Ora, dovresti sapere come creare blocchi anonimi PL/SQL ed eseguirli usando gli strumenti SQL*Plus e Oracle SQL Developer.
- È stato utile questo tutorial?
- SìNo