Condividi tramite


Scripting SQL

Si applica a:contrassegnato sì Databricks SQL contrassegnato sì 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_ZERO o 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'utente SIGNAL. Questi gestori possono gestire qualsiasi condizione associata a tale SQLSTATE.

  • Un gestore di SQLEXCEPTION generico può intercettare tutte le condizioni che rientrano nel SQLEXCEPTION (qualsiasi SQLSTATE che non sia XX*** e non sia 02***).

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 gestore EXCEPTION generico è 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: contrassegnato come sì Databricks SQL contrassegnato come sì 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: