Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
Databricks SQL
Databricks Runtime 16.3 e versioni successive
Importante
Questa funzionalità si trova in anteprima pubblica.
È possibile usare una logica procedurale avanzata usando la sintassi di scripting basata su SQL/PSM standard.
Qualsiasi script SQL è costituito da un blocco di istruzione composta (BEGIN ... END) e inizia con esso.
Un'istruzione composta inizia con una sezione per dichiarare variabili locali, condizioni definite dall'utente e gestori di condizioni, usati per intercettare le eccezioni.
Questo è seguito dal corpo dell'istruzione composta, costituito da:
- Le istruzioni di controllo del flusso includono cicli su espressioni di predicato, FOR cicli sui risultati delle query, logica condizionale, ad esempio IF e CASEe significa interrompere i cicli, ad esempio LEAVE e ITERATE.
- Istruzioni DDL, ad esempio
ALTER,CREATE,DROP. - Istruzioni DCL (Data Control), ad esempio GRANT e REVOKE.
- Le istruzioni DML INSERT, UPDATE, DELETEe MERGE.
- query che restituiscono set di risultati al chiamante dello script.
- SET istruzioni per impostare variabili locali e variabili di sessione.
- Istruzione EXECUTE IMMEDIATE.
- Istruzioni composte annidate, che forniscono ambiti annidati per variabili, condizioni e gestori di condizioni.
Passaggio di dati tra l'entità chiamante e l'istruzione composta
Esistono due modi per passare i dati da e verso uno script SQL:
- Usare le variabili di sessione per passare valori scalari o piccoli set di matrici o mappe da uno script SQL a un altro.
- Usare i marcatori di parametro per passare valori scalari o piccoli set di matrici o dati mappati da un widget del notebook, Python o un altro linguaggio allo script SQL.
Definizione dell'ambito delle variabili
È possibile fare riferimento alle variabili dichiarate all'interno di un'istruzione composta in qualsiasi espressione all'interno di un'istruzione composta. Databricks risolve gli identificatori dall'ambito più interno verso l'esterno, seguendo le regole descritte in risoluzione dei nomi . È possibile usare l'istruzione composta facoltativa etichette per disambiguare i nomi di variabili duplicati .
Gestione delle condizioni
Scripting SQL supporta i gestori di condizioni, che vengono usati per intercettare ed elaborare le eccezioni per EXIT l'elaborazione dello script SQL.
All'interno del gestore delle condizioni, è possibile RIATTIVARE l'eccezione originale, SEGNALARE una nuova eccezione o uscire dall'istruzione composta senza un'eccezione.
I gestori delle condizioni possono essere definiti per gestire tre classi distinte di condizioni:
Una o più condizioni denominate che possono essere una classe di errore specifica definita da Databricks, ad esempio
DIVIDE_BY_ZEROo una condizione dichiarata dall'utente. Questi gestori gestiscono queste condizioni specifiche.Uno o più
SQLSTATE, che possono essere sollevati da Databricks o da un'istruzione dell'utenteSIGNAL. Questi gestori possono gestire qualsiasi condizione associata a taleSQLSTATE.Un gestore di
SQLEXCEPTIONgenerico può intercettare tutte le condizioni che rientrano nelSQLEXCEPTION(qualsiasiSQLSTATEche non siaXX***e non sia02***).
I seguenti vengono usati per decidere quale gestore di condizioni si applica a un'eccezione. Questo gestore di condizioni viene chiamato gestore più appropriato:
Un gestore di condizioni non può essere applicato a qualsiasi istruzione definita nel proprio corpo o al corpo di qualsiasi gestore di condizioni dichiarato nella stessa istruzione composta.
I gestori di condizioni applicabili definiti nell'istruzione composta più interna in cui è stata generata l'eccezione sono appropriati.
Se sono disponibili più gestori appropriati, il gestore più specifico è il più appropriato. Ad esempio, un gestore in una condizione denominata è più specifico di uno in un
SQLSTATEdenominato . Un gestoreEXCEPTIONgenerico è il meno specifico.
A meno che un gestore SIGNALo RESIGNALnon imponga una propria condizione, il risultato di un gestore di condizioni consiste nell'eseguire l'istruzione seguente a quella composta che ha dichiarato il gestore da eseguire successivo.
Procedure SQL memorizzate
Importante
Questa funzionalità si trova in anteprima pubblica.
Si applica a:
Databricks SQL
Databricks Runtime 17.0 e versioni successive
Usando l'istruzione CREATE PROCEDURE è possibile rendere persistente uno script SQL nel catalogo unity. Puoi quindi consentire l'accesso alla procedura ad altre entità. Tali entità possono quindi utilizzare l'istruzione CALL per richiamare la procedura.
Elenco delle istruzioni del flusso di controllo
Di seguito è riportato un elenco di istruzioni del flusso di controllo supportate:
- 'istruzione CASE
- istruzione composta BEGIN END
- 'istruzione FOR
- GET dichiarazione DIAGNOSTICS
- l'istruzione IF THEN ELSE
- istruzione ITERATE
- istruzione LEAVE
- 'istruzione LOOP
- istruzione REPEAT
- istruzione RESIGNAL
- istruzione SIGNAL
- istruzione WHILE