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.
Ważne
Ta funkcja jest dostępna w publicznej wersji testowej.
Dotyczy:
Databricks SQL Databricks Runtime 17.0 i nowsze
tylko katalog Unity
Tworzy procedurę w katalogu Unity, która przyjmuje i/lub modyfikuje argumenty, wykonuje zestaw zapytań SQL i opcjonalnie zwraca zestaw wyników.
Oprócz wywołania parametru pozycyjnego można również wywołać procedury przy użyciu wywołania nazwanego parametru.
Składnia
CREATE [OR REPLACE] PROCEDURE [IF NOT EXISTS]
procedure_name ( [ procedure_parameter [, ...] ] )
[ characteristic [...] ]
AS compound_statement
procedure_parameter
[ IN | OUT | INOUT ] parameter_name data_type
[ DEFAULT default_expression ] [ COMMENT parameter_comment ]
characteristic
{ LANGUAGE SQL |
SQL SECURITY INVOKER |
NOT DETERMINISTIC |
COMMENT procedure_comment |
DEFAULT COLLATION UTF8_BINARY |
MODIFIES SQL DATA }
Parametry
ORAZ ZASTĄP
Jeśli zostanie określona, zostanie zamieniona procedura o tej samej nazwie. Nie można zastąpić istniejącej funkcji procedurą. Nie można określić tego parametru za pomocą
IF NOT EXISTS.JEŚLI NIE ISTNIEJE
Jeśli zostanie podana, tworzy procedurę tylko wtedy, gdy procedura z tą notatką jeszcze nie istnieje. Jeśli istnieje procedura o tej samej nazwie, instrukcja jest ignorowana. Nie można określić tego parametru za pomocą
OR REPLACE.-
Nazwa procedury. Opcjonalnie można zakwalifikować nazwę procedury przy użyciu nazwy schematu. Jeśli nazwa nie jest kwalifikowana, procedura stała zostanie utworzona w bieżącym schemacie.
Nazwa procedury musi być unikatowa dla wszystkich procedur (procedur i funkcji) w schemacie.
procedure_parameter
Określa parametr procedury.
-
Nazwa parametru musi być unikatowa w ramach procedury.
IN, INOUT lub OUT
Opcjonalnie opisuje tryb parametru.
W
Definiuje tylko parametr wejściowy. Jest to wartość domyślna.
INOUT
Definiuje parametr, który akceptuje argument input-output. Jeśli procedura zostanie ukończona bez nieobsługiwanego błędu, zwróci ostateczną wartość parametru jako dane wyjściowe.
Na zewnątrz
Definiuje parametr wyjściowy. Parametr jest inicjowany na
NULLi, jeśli procedura zostanie ukończona bez nieobsługiwanego błędu, zwróci ostateczną wartość parametru jako dane wyjściowe.
-
Dowolny obsługiwany typ danych.
DOMYŚLNE default_expression
Opcjonalna wartość domyślna, która ma być używana, gdy wywołanie funkcji nie przypisuje argumentu do parametru.
default_expressionmusi być rzutowalny nadata_type. Wyrażenie nie może odwoływać się do innego parametru lub zawierać podzapytania.Po określeniu wartości domyślnej dla jednego parametru wszystkie następujące parametry muszą mieć również wartość domyślną.
DEFAULTnie jest obsługiwany dlaOUTparametrów.Komentarz komentarz
Opcjonalny opis parametru.
commentmusi być dosłowną wartościąSTRING.
-
-
Komunikat złożony SQL (
BEGIN ... END) zawierający definicję procedury SQL.Po utworzeniu procedury jej poprawność składniowa jest weryfikowana. Treść procedury nie jest weryfikowana pod kątem poprawności semantycznej do momentu wywołania procedury.
charakterystyczny
SQL SECURITY INVOKERcecha iLANGUAGE SQLwymagana. Wszystkie inne są opcjonalne. Można określić dowolną liczbę cech w dowolnej kolejności, ale można określić każdą klauzulę tylko raz.JĘZYK SQL
Język implementacji funkcji.
SQL SECURITY INVOKER
Określa, że wszystkie instrukcje SQL w treści procedury zostaną wykonane pod władzą użytkownika wywołującego procedurę.
Podczas rozwiązywania relacji i procedur w treści procedury usługa Azure Databricks używa bieżącego wykazu i bieżącego schematu w momencie wywołania.
BRAK DETERMINISTYKI
Przyjmuje się, że procedura jest nieokreślona, co oznacza, że może zwracać różne wyniki dla każdego wywołania, nawet jeśli jest wywoływana z tymi samymi argumentami.
Komentarz dotyczący procedury
Komentarz do procedury.
procedure_commentmusi byćSTRINGliterałem. Wartość domyślna toNULL.DOMYŚLNE SORTOWANIE UTF8_BINARY
Dotyczy:
, sprawdź, czy usługa SQL databricks
Databricks Runtime 17.1 lub nowszaUstawia domyślne porządkowanie procedury na
UTF8_BINARY. Ta klauzula jest obowiązkowa, jeśli schemat, w którym utworzono procedurę, ma domyślne sortowanie inne niżUTF8_BINARY. Domyślne sortowanie procedury jest używane jako domyślne sortowanie parametrów procedury oraz sortowanie domyślne dla wszystkich literałów ciągów i zmiennych lokalnych w treści procedury.MODYFIKUJE DANE SQL
Przyjęto procedurę modyfikowania danych SQL.
Przykłady
-- Demonstrate INOUT and OUT parameter usage.
> CREATE OR REPLACE PROCEDURE add(x INT, y INT, OUT sum INT, INOUT total INT)
LANGUAGE SQL
SQL SECURITY INVOKER
COMMENT 'Add two numbers'
AS BEGIN
SET sum = x + y;
SET total = total + sum;
END;
> DECLARE sum INT;
> DECLARE total INT DEFAULT 0;
> CALL add(1, 2, sum, total);
> SELECT sum, total;
3 3
> CALL add(3, 4, sum, total);
7 10
-- The last executed query is the result set of a procedure
> CREATE PROCEDURE greeting(IN mode STRING COMMENT 'informal or formal')
LANGUAGE SQL
SQL SECURITY INVOKER
AS BEGIN
SELECT 'Hello!';
CASE mode WHEN 'informal' THEN SELECT 'Hi!';
WHEN 'formal' THEN SELECT 'Pleased to meet you.';
END CASE;
END;
> CALL greeting('informal');
Hi!
> CALL greeting('formal');
Pleased to meet you.
> CALL greeting('casual');
Hello!