Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Fontos
Ez a funkció nyilvános előzetes verzióban van.
A következőre vonatkozik:
Databricks SQL
Databricks Runtime 17.0 és újabb
Név alapján meghív egy tárolt eljárást, és argumentumokat ad át az eljárásnak.
Az eljáráshívások legfeljebb 64 szinten ágyazhatók be.
Szemantika
CALL procedure_name( [ argument [, …] ]
[ namedParameter => argument ] [, ...] )
Paraméterek
-
A meghívandó eljárás neve. Az eljárás neve választhatóan sémanévvel is minősíthető. Ha a nevet nem minősítették, az eljárás az aktuális sémában oldódik fel. Ha az eljárás nem létezik,
ROUTINE_NOT_FOUNDhibaüzenet jelenik meg. -
A
INparaméterekhez hozzárendelt argumentumok esetében bármilyen típusú kifejezés megadható, amely a paraméterhez vagy aDEFAULTkulcsszóhoz konvertálható.OUTésINOUTparaméterek esetében az argumentumnak munkamenet-változónak vagy helyi változónak kell lennie.Ha az eljárás meghiúsul, a
OUTINOUTparaméterek argumentumértékei változatlanok maradnak.Megjegyzés:
Az argumentumnak meg kell egyeznie a paraméter adattípusával. Ez magában foglalja például egy
DATEparaméterhez a'2015-01-01'helyettDATE'2015-01-01'megadását. -
Annak a paraméternek a nem minősített neve, amelyhez a
argExprparaméter hozzá van rendelve.
Az argumentumok száma nem lehet nagyobb, mint az eljáráshoz megadott paraméterek száma.
Ha a paramétereknél kevesebb argumentumot ad meg, a paramétereket értékekkel DEFAULT kell definiálni.
Példák
> 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