Udostępnij za pomocą


Tworzenie skryptów SQL

Dotyczy:oznaczono tak Databricks SQL oznaczono tak 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_ZERO lub 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ę SIGNAL użytkownika. Te procedury mogą obsługiwać dowolny warunek skojarzony z tym SQLSTATE.

  • Ogólny program obsługi SQLEXCEPTION może obsługiwać wszystkie warunki wchodzące w SQLEXCEPTION (wszystkie SQLSTATE, które nie są XX*** i nie 02***).

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ługi EXCEPTION jest 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: zaznaczone jako tak Databricks SQL zaznaczone jako tak 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: