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 výše
Vyvolá uloženou proceduru podle názvu a předá argumenty do a z procedury.
Volání procedur lze vnořit až do 64 úrovní.
Syntaxe
CALL procedure_name( [ argument [, …] ]
[ namedParameter => argument ] [, ...] )
Parametry
-
Název procedury, která se má vyvolat. Název procedury může být volitelně kvalifikovaný názvem schématu. Pokud název není kvalifikovaný, postup se vyřeší v aktuálním schématu. Pokud procedura neexistuje, vyvolá se
ROUTINE_NOT_FOUNDchyba. -
Pro argumenty přiřazené k
INparametrům může být použit jakýkoli výraz takového typu, který lze přetypovat na tento parametr, nebo klíčové slovoDEFAULT. U parametrůOUTaINOUTmusí být argumentem proměnná relace nebo místní proměnná.Pokud procedura selže, hodnoty argumentů
OUTaINOUTparametrů zůstanou beze změny.Poznámka:
Argument musí odpovídat datovému typu parametru. To zahrnuje zadání, například:
DATE'2015-01-01'místo'2015-01-01'pro parametrDATE. -
Nekvalifikovaný název parametru, ke kterému
argExprje přiřazen.
Počet argumentů nesmí být větší než počet parametrů zadaných pro proceduru.
Pokud zadáte méně argumentů, než jsou parametry, musí být parametry definovány s DEFAULT hodnotami.
Příklady
> CREATE OR REPLACE PROCEDURE area_of_rectangle
(IN x INT, IN y INT, OUT area INT, INOUT acc INT)
LANGUAGE SQL
SQL SECURITY INVOKER
AS BEGIN
SET area = x * y;
SET acc = acc + area;
SELECT 'Area of rectangle is: ' || area;
END;
-- Session varables to handle OUT and INOUT parameters
> DECLARE area INT;
> DECLARE acc INT DEFAULT 10;
-- Invocation by position
> CALL area_of_rectangle(5, 10, area, acc);
Area of rectangle is: 50
> SELECT area, acc;
area acc
—--- —--
50 60
-- Invocation by name
> CALL area_of_rectangle(y => 10, x => 5, area => area, acc => acc);
Area of rectangle is: 50
> SELECT area, acc;
area acc
—--- —--
50 120