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.
Důležité
Tato funkce je ve verzi Public Preview.
Platí pro:
Databricks SQL Databricks Runtime 17.0 a vyšší
Databricks Unity Catalog
Vytvoří proceduru v katalogu Unity, která přebírá nebo upravuje argumenty, spouští sadu příkazů SQL a volitelně vrací sadu výsledků.
Kromě volání pozičního parametru můžete také vyvolat procedury pomocí pojmenovaného vyvolání parametru.
Syntaxe
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
NEBO NAHRAĎTE
Pokud je zadáno, nahradí se procedura stejného názvu. Existující funkci nelze nahradit postupem. Tento parametr nelze zadat pomocí parametru
IF NOT EXISTS.POKUD NEEXISTUJE
Pokud je zadána, vytvoří proceduru pouze v případě, že procedura s danou poznámkou ještě neexistuje. Pokud existuje procedura se stejným názvem, příkaz se ignoruje. Tento parametr nelze zadat pomocí parametru
OR REPLACE.-
Název procedury. Volitelně můžete kvalifikovat název procedury názvem schématu. Pokud název není kvalifikovaný, vytvoří se v aktuálním schématu trvalá procedura.
Název procedury musí být jedinečný pro všechny rutiny (procedury a funkce) ve schématu.
procedure_parameter
Určuje parametr procedury.
-
Název parametru musí být v rámci procedury jedinečný.
IN, INOUT nebo OUT
Volitelně popisuje režim parametru.
V
Definuje parametr pouze vstupní. Toto je výchozí hodnota.
INOUT
Definuje parametr, který přijímá argument input-output. Pokud se procedura dokončí bez neošetřené chyby, vrátí jako výstup konečnou hodnotu parametru.
VEN
Definuje výstupní parametr. Parametr se inicializuje
NULLa pokud se procedura dokončí bez neošetřené chyby, vrátí jako výstup konečnou hodnotu parametru.
-
Libovolný podporovaný datový typ.
VÝCHOZÍ default_expression
Volitelné výchozí nastavení, které se má použít, když vyvolání funkce nepřiřazuje argument parametru.
default_expressionmusí být přetypovatelný nadata_type. Výraz nesmí odkazovat na jiný parametr ani obsahovat poddotaz.Pokud zadáte výchozí hodnotu pro jeden parametr, musí mít všechny následující parametry také výchozí hodnotu.
DEFAULTnení podporováno pro parametryOUT.KOMENTÁŘ
Volitelný popis parametru.
commentmusí býtSTRINGliterál.
-
-
Složený příkaz SQL (
BEGIN ... END) s definicí procedury SQL.Po vytvoření procedury se ověří její syntaktická správnost. Tělo procedury není ověřeno pro sémantickou správnost, dokud se nevyvolá procedura.
charakteristický
Charakteristika
SQL SECURITY INVOKERaLANGUAGE SQLpovinné. Všechny ostatní jsou volitelné. Můžete zadat libovolný počet charakteristik v libovolném pořadí, ale každou klauzuli můžete zadat pouze jednou.JAZYK SQL
Jazyk implementace funkce.
VYVOLÁNÍ ZABEZPEČENÍ SQL
Určuje, že všechny příkazy SQL v těle procedury budou provedeny pod autoritou uživatele vyvolání procedury.
Při řešení relací a rutin v těle procedury azure Databricks používá aktuální katalog a aktuální schéma v době vyvolání.
NEDETERMINISTICKÝ
Procedura se předpokládá nedeterministicky, což znamená, že při každém vyvolání může vracet různé výsledky, i když je volána se stejnými argumenty.
PROCEDURA_KOMENTÁŘ
Komentář k postupu.
procedure_commentmusí býtSTRINGliterál. Výchozí hodnota jeNULL.VÝCHOZÍ KOLACE UTF8_BINARY
Platí pro:
Kontrola SQL Databricks
Databricks Runtime 17.1 a vyššíVynutí výchozí kolaci procedury na
UTF8_BINARY. Tato klauzule je povinná, pokud schéma, ve kterém je procedura vytvořena, má jinou výchozí kolaci nežUTF8_BINARY. Výchozí kolace procedury se používá jako výchozí kolace parametrů procedury a výchozí kolace pro všechny řetězcové literály a místní proměnné v těle procedury.UPRAVÍ DATA SQL.
Předpokládá se, že se jedná o úpravu dat SQL.
Příklady
-- 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!
Související články
- ZAVOLAT
- DROP PROCEDURE (zrušit proceduru)
- ZOBRAZIT POSTUPY
- POPIS POSTUPU
- GRANT
- REVOKE