Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
Databricks SQL
Databricks Runtime 16.3 a vyšší
Důležitý
Tato funkce je ve verzi Public Preview.
Pomocí standardní syntaxe skriptování sql/PSM můžete použít výkonnou procedurální logiku.
Každý skript SQL se skládá z složeného příkazu bloku (BEGIN ... END).
Složený příkaz začíná oddílem pro deklaraci místních proměnných, uživatelem definovaných podmínek a obslužných rutin podmínek, které se používají k zachycení výjimek.
Následuje tělo složeného výrazu, které se skládá z:
- Příkazy řízení toku zahrnují smyčky nad predikátovými výrazy, FOR smyčky nad výsledky dotazu, podmíněnou logiku, jako je IF a CASE, a prostředky k přerušení smyček, jako je LEAVE a ITERATE.
- Příkazy DDL, jako jsou
ALTER,CREATE,DROP. - Příkazy DCL (Data Control), jako jsou GRANT a REVOKE.
- Příkazy DML INSERT, UPDATE, DELETEa MERGE.
- Dotazy, které vrací sady výsledků vyvolavateli skriptu.
- SET příkazy k nastavení místních proměnných a proměnných sezení.
- Příkaz EXECUTE IMMEDIATE.
- Vnořené složené příkazy, které poskytují vnořené obory pro proměnné, podmínky a obslužné rutiny pro podmínky.
Předávání dat mezi vyvolávačem a složeným příkazem
Existují dva způsoby předávání dat do a ze skriptu SQL:
- Pomocí relačních proměnných můžete přenášet skalární hodnoty nebo malé sady polí či map z jednoho skriptu SQL do jiného.
- Pomocí značek parametrů můžete předat skalární hodnoty nebo malé sady polí nebo mapovat data z widgetu poznámkového bloku, Pythonu nebo jiného jazyka do skriptu SQL.
Rozsah proměnných
Proměnné deklarované v rámci složeného příkazu lze odkazovat v libovolném výrazu v rámci složeného příkazu. Databricks řeší identifikátory od nejvnitřnějšího rozsahu ven podle pravidel popsaných v Name Resolution. Volitelný složený příkaz popisky můžete použít k odstranění nejednoznačnosti duplicitních názvů proměnných .
Zpracování podmínek
Skriptování SQL podporuje obslužné rutiny pro zpracování podmínek, které se používají k zachycení a zpracování výjimek během EXIT zpracování skriptu SQL.
V obslužné rutině podmínky můžete REZIGNAL původní výjimku, SIGNAL novou výjimku, nebo ukončit složený příkaz bez výjimky.
Obslužné rutiny pro podmínky lze definovat, které zpracovávají tři odlišné třídy podmínek:
Jedna nebo více pojmenovaných podmínek, které mohou být konkrétní třídou chyb definovanou službou Databricks, jako je například
DIVIDE_BY_ZEROnebo podmínka deklarovaná uživatelem. Tyto obslužné rutiny zpracovávají tyto konkrétní podmínky.Jeden nebo více
SQLSTATEs, které mohou být vyvolány Databricks nebo uživatelským příkazemSIGNAL. Tyto obslužní prvky mohou zpracovat jakoukoli podmínku přidruženou k tétoSQLSTATE.Obecná obslužná rutina
SQLEXCEPTIONmůže zachytit všechny podmínky spadající doSQLEXCEPTION(všechnySQLSTATE, které nejsouXX***ani02***).
Následující jsou použity k určení, která obslužná rutina podmínky se aplikuje na výjimku. Tato obslužná rutina se nazývá nejvhodnější obslužná rutina:
Obslužná rutina podmínky se nemůže použít na žádný příkaz definovaný ve vlastním těle nebo na tělo jakékoli obslužné rutiny podmínky deklarované ve stejném složeném příkazu.
Příslušné obslužné rutiny pro podmínky definované v nejvnitřnějším složeném příkazu, kde byla výjimka vyvolána, jsou vhodné.
Pokud je k dispozici více než jedna vhodná obslužná rutina, nejvíce vhodná je nejkonkrétnější obslužná rutina. Například obslužná rutina v pojmenované podmínce je konkrétnější než jedna v pojmenované
SQLSTATE. Obecná obslužná rutinaEXCEPTIONje nejméně specifická.
Pokud obslužná rutina SIGNALnebo RESIGNALnevyvolá vlastní podmínku, výsledkem obslužné rutiny je provedení následujícího příkazu, jenž přijde po složeném příkazu, který tuto obslužnou rutinu definoval.
Uložené procedury SQL
Důležitý
Tato funkce je ve verzi Public Preview.
Platí pro:
Databricks SQL
Databricks Runtime 17.0 a novější
Pomocí příkazu CREATE PROCEDURE můžete zachovat skript SQL v katalogu Unity. Pak můžete GRANT umožnit přístup k postupu jiným uživatelům. Tyto subjekty pak mohou příkaz CALL použít k vyvolání procedury.
Seznam příkazů pro řízení toku
Následuje seznam podporovaných příkazů toku řízení:
- příkaz CASE
- složený příkaz BEGIN END
- Příkaz FOR
- GET DIAGNOSTICS příkazu
- příkaz IF THEN ELSE
- příkaz ITERATE
- příkaz LEAVE
- Příkaz cyklu
- příkaz REPEAT
- příkaz RESIGNAL
- příkaz SIGNAL
- příkaz WHILE
Související články
- VYTVOŘIT PROCEDURU
- DROP PROCEDURE (zrušit proceduru)
- ZAVOLAT