Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Deze functie bevindt zich in openbare preview-versie.
Van toepassing op:
Databricks Runtime 17.0 en hoger
Roept een opgeslagen procedure op naam aan en geeft argumenten door naar en vanuit de procedure.
Procedure-aanroepen kunnen tot maximaal 64 niveaus worden genest.
Syntaxis
CALL procedure_name( [ argument [, …] ]
[ namedParameter => argument ] [, ...] )
Parameterwaarden
-
De naam van de procedure die moet worden aangeroepen. De procedurenaam kan eventueel worden gekwalificeerd met een schemanaam. Als de naam niet is gekwalificeerd, wordt de procedure afgehandeld in het huidige schema. Als de procedure niet bestaat, wordt er een
ROUTINE_NOT_FOUNDfout gegenereerd. -
Voor argumenten die zijn toegewezen aan
INparameters, elke expressie van een type dat kan worden omgezet in de parameter of hetDEFAULTtrefwoord. VoorOUTenINOUTparameters moet het argument een sessievariabele of lokale variabele zijn.Als de procedure mislukt, blijven de argumentwaarden van de
OUTenINOUTparameters ongewijzigd. -
De niet-gekwalificeerde naam van een parameter waaraan de
argExprparameter is toegewezen.
Het aantal argumenten mag niet groter zijn dan het aantal parameters dat is opgegeven voor de procedure.
Als u minder argumenten opgeeft dan er parameters zijn, moeten de parameters worden gedefinieerd met DEFAULT waarden.
Voorbeelden
> 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