Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:
Databricks SQL
Databricks Runtime 16.3 lub nowszego
Ważny
Ta funkcja jest dostępna w publicznej wersji testowej.
Możesz użyć zaawansowanej logiki proceduralnej przy użyciu standardowej składni skryptów opartej na języku SQL/PSM.
Każdy skrypt SQL składa się z złożonej instrukcji i zaczyna się od bloku (BEGIN ... END).
Instrukcja złożona rozpoczyna się od sekcji w celu deklarowania zmiennych lokalnych, warunków określonych przez użytkownika i obsług wyjątków, które są używane do przechwytywania wyjątków.
Następuje po nim treść instrukcji złożonej, która składa się z:
- Instrukcje sterowania przepływem obejmują pętle na wyrażeniach predykatu, FOR for pętle na wynikach zapytania, logikę warunkową, taką jak IF i CASE, oraz metody podziału pętli, takich jak LEAVE i ITERATE.
- Instrukcje DDL, takie jak
ALTER,CREATE,DROP. - Instrukcje DCL (Data Control), takie jak GRANT i REVOKE.
- Instrukcje DML INSERT, UPDATE, DELETEi MERGE.
- Zapytania, które zwracają zestawy wyników do osoby wywołującej skrypt.
- SET instrukcji ustawiających zmienne lokalne oraz zmienne sesji.
- Instrukcja EXECUTE IMMEDIATE.
- Zagnieżdżone instrukcje złożone, które zapewniają zagnieżdżone zakresy dla zmiennych, warunków i procedur obsługi warunków.
Przekazywanie danych między invokerem a złożonym wyrażeniem
Istnieją dwa sposoby przekazywania danych do i ze skryptu SQL:
- Zmienne sesji umożliwiają przekazywanie wartości skalarnych lub małych zestawów tablic lub map z jednego skryptu SQL do innego.
- Znaczniki parametrów umożliwiają przekazywanie wartości skalarnych lub małych zestawów tablic lub mapowania danych z widżetu notesu, języka Python lub innego języka do skryptu SQL.
Określanie zakresu zmiennych
Zmienne zadeklarowane w instrukcji złożonej mogą być przywoływane w dowolnym wyrażeniu w instrukcji złożonej. Usługa Databricks rozwiązuje identyfikatory od najbardziej wewnętrznego zakresu na zewnątrz, zgodnie z regułami opisanymi w Rozwiązywanie Nazw. Możesz użyć opcjonalnej złożonej instrukcji z etykietami, aby rozróżnić zduplikowane nazwy zmiennych .
Obsługa warunków
Obsługa skryptów SQL obsługuje procedury obsługi warunków, które są używane do przechwytywania i przetwarzania wyjątków w celu EXIT przetwarzania skryptu SQL.
W ramach obsługiwacza warunków można PONOWNIE SYGNALIZOWAĆ oryginalny wyjątek, SYGNALIZOWAĆ nowy wyjątek, lub zamknąć instrukcję złożoną bez wyjątku.
Programy obsługi warunków można zdefiniować do obsługi trzech odrębnych klas warunków:
Co najmniej jeden nazwany warunek, który może być określoną klasą błędów zdefiniowaną przez usługę Databricks, taką jak
DIVIDE_BY_ZEROlub warunek zadeklarowany przez użytkownika. Te programy obsługi obsługują te określone warunki.Co najmniej jeden
SQLSTATE, który może być zgłaszany przez usługę Databricks lub instrukcjęSIGNALużytkownika. Te procedury mogą obsługiwać dowolny warunek skojarzony z tymSQLSTATE.Ogólny program obsługi
SQLEXCEPTIONmoże obsługiwać wszystkie warunki wchodzące wSQLEXCEPTION(wszystkieSQLSTATE, które nie sąXX***i nie02***).
Poniżej przedstawiono sposób decydowania, który program obsługi warunków ma zastosowanie do wyjątku. Ta procedura obsługi warunków jest nazywana najbardziej odpowiednią procedurą obsługi:
Program obsługi warunków nie może zastosować się do żadnej instrukcji zdefiniowanej we własnej treści lub treści dowolnego programu obsługi warunku zadeklarowanego w tej samej instrukcji złożonej.
Odpowiednie procedury obsługi warunków zdefiniowane w najbardziej wewnętrznej instrukcji złożonej, w której zgłoszono wyjątek, są odpowiednie.
Jeśli dostępnych jest więcej niż jedna odpowiednia procedura obsługi, najbardziej szczegółowa jest najbardziej odpowiednia. Na przykład procedura obsługi w nazwanym warunku jest bardziej specyficzna niż jedna w nazwanym
SQLSTATE. Uniwersalny program obsługiEXCEPTIONjest najmniej specyficzny.
Chyba że procedura obsługi SIGNALs lub RESIGNALjest warunkiem własnym, wynikiem programu obsługi warunku jest wykonanie instrukcji po instrukcji złożonej, która zadeklarowała program obsługi do wykonania dalej.
Procedury składowane SQL
Ważny
Ta funkcja jest dostępna w publicznej wersji testowej.
Dotyczy:
Databricks SQL
Databricks Runtime 17.0 lub nowszych
Za pomocą instrukcji CREATE PROCEDURE można utrwalić skrypt SQL w katalogu Unity. Następnie możesz udostępnić dostęp do procedury innym podmiotom. Podmioty główne mogą następnie wywołać procedurę za pomocą instrukcji CALL.
Lista wyrażeń przepływu sterowania
Poniżej znajduje się lista obsługiwanych instrukcji przepływu sterowania:
- instrukcji CASE
- instrukcja złożona BEGIN END
- FOR, instrukcja
- GET stwierdzenie diagnostyki
- instrukcja IF THEN ELSE
- instrukcja ITERATE
- instrukcja "LEAVE"
- instrukcja pętli
- instrukcja POWTÓRZ
- instrukcja RESIGNAL
- instrukcja SIGNAL
- WHILE, instrukcja