Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Databricks SQL
Databricks Runtime 16.3 en hoger
Belangrijk
Deze functie bevindt zich in openbare preview-versie.
U kunt krachtige procedurelogica gebruiken met behulp van de standaardscriptsyntaxis op basis van SQL/PSM.
Elk SQL-script bestaat uit en begint met een samengestelde instructie blok (BEGIN ... END).
Een samengestelde instructie begint met een sectie om lokale variabelen, door de gebruiker gedefinieerde voorwaarden en voorwaardehandlers te declareren, die worden gebruikt om uitzonderingen te ondervangen.
Dit wordt gevolgd door de samengestelde instructietekst, die bestaat uit:
- Stroomcontrole-instructies bevatten lussen over predicaatexpressies, FOR-lussen over queryresultaten, voorwaardelijke logica zoals IF en CASE, en methoden om lussen zoals LEAVE en ITERATEaf te breken.
- DDL-instructies zoals
ALTER,CREATE,DROP. - DCL-instructies zoals Data Control GRANT en REVOKE.
- DML-instructies INSERT, UPDATE, DELETEen MERGE.
- Query's die resultatensets retourneren aan de aanroeper van het script.
- SET instructies voor het instellen van lokale variabelen en sessievariabelen.
- De EXECUTE IMMEDIATE-verklaring.
- Geneste samengestelde instructies, die geneste bereiken bieden voor variabelen, voorwaarden en voorwaardehandlers.
Gegevens doorgeven tussen de aanroeper en de samengestelde verklaring
Er zijn twee manieren om gegevens door te geven aan en van een SQL-script:
- Gebruik sessievariabelen om scalaire waarden of kleine sets matrices of toewijzingen van het ene SQL-script door te geven aan een andere.
- Gebruik parametermarkeringen om scalaire waarden of kleine sets matrices of toewijzingsgegevens van een notebookwidget, Python of een andere taal door te geven aan het SQL-script.
Bereik van variabelen
Variabelen die binnen een samengestelde instructie zijn gedeclareerd, kunnen in elke expressie binnen een samengestelde instructie worden verwezen. Databricks resolveert identificatoren van de binnenste scope naar buiten toe, volgens de regels zoals beschreven in Naamresolutie. U kunt de optionele samengestelde instructie labels gebruiken om de dubbele variabelennamen te onderscheiden.
Verwerking van voorwaarden
SQL Scripting ondersteunt voorwaarde-handlers, die worden gebruikt om uitzonderingen te onderscheppen en te verwerken voor EXIT verwerking van het SQL-script.
Binnen de foutafhandelaar kunt u de oorspronkelijke uitzondering RESIGNAL, een nieuwe uitzondering SIGNAL, of de samengestelde instructie verlaten zonder een uitzondering.
Voorwaardehandlers kunnen worden gedefinieerd voor het afhandelen van drie afzonderlijke klassen voorwaarden:
Een of meer benoemde voorwaarden die een specifieke door Databricks gedefinieerde foutklasse kunnen zijn, zoals
DIVIDE_BY_ZEROof een door de gebruiker gedeclareerde voorwaarde. Deze handlers verwerken deze specifieke voorwaarden.Een of meer
SQLSTATEs, die kunnen worden gegenereerd door Databricks of eenSIGNAL-instructie van een gebruiker. Deze handlers kunnen elke voorwaarde verwerken die is gekoppeld aan dieSQLSTATE.Een algemene
SQLEXCEPTION-behandelaar kan alle gevallen opvangen die in deSQLEXCEPTIONvallen (alleSQLSTATEdie nietXX***en niet02***zijn).
Hieronder wordt bepaald welke voorwaardehandler van toepassing is op een uitzondering. Deze voorwaardehandler wordt de meest geschikte handler genoemd:
Een voorwaardehandler kan niet van toepassing zijn op een instructie die is gedefinieerd in zijn eigen hoofdtekst of de hoofdtekst van een voorwaardehandler die is gedeclareerd in dezelfde samengestelde instructie.
De toepasselijke voorwaardehandlers die zijn gedefinieerd in de binnenste samengestelde instructie waarin de uitzondering is gegenereerd, zijn geschikt.
Als er meer dan één geschikte handler beschikbaar is, is de meest specifieke handler de meest geschikte. Een handler op een benoemde voorwaarde is bijvoorbeeld specifieker dan één op een benoemde
SQLSTATE. Een algemeneEXCEPTIONhandler is het minst specifiek.
Tenzij een handler een eigen voorwaarde SIGNALof RESIGNALis, is het resultaat van een voorwaardehandler het uitvoeren van de instructie volgens de samengestelde instructie die de handler heeft gedeclareerd om volgende uit te voeren.
Opgeslagen SQL-procedures
Belangrijk
Deze functie bevindt zich in openbare preview-versie.
Van toepassing op:
Databricks Runtime 17.0 en hoger
Met behulp van de INSTRUCTIE CREATE PROCEDURE kunt u een SQL-script in Unity Catalog behouden. Vervolgens kunt u GRANT de toegang tot de procedure aan andere belanghebbenden verlenen. Deze principals kunnen vervolgens de CALL-instructie gebruiken om de procedure aan te roepen.
Lijst met controlestroominstructies
Hier volgt een lijst met ondersteunde controlestroominstructie:
- CASE-instructie
- BEGIN END-samengestelde instructie
- FOR-instructie
- GET DIAGNOSTICS-verklaring
- IF THEN ELSE-statement
- ITERATE-instructie
- LEAVE-instructie
- LOOP-instructie
- Herhaal-opdracht
- RESIGNAL-instructie
- SIGNAL-opdracht
- WHILE-instructie