DIRECT UITVOEREN
Van toepassing op: Databricks SQL Databricks Runtime 14.3 en hoger
Voert een SQL-instructie uit die is opgegeven als een STRING
.
De instructie geeft eventueel argumenten door aan parametermarkeringen en wijst de resultaten toe aan variabelen.
Syntaxis
EXECUTE IMMEDIATE sql_string
[ INTO var_name [, ...] ]
[ USING { arg_expr [ AS ] [alias] } [, ...] ]
Voor compatibiliteit met andere SQL-dialecten ondersteunt EXECUTE IMMEDIATE
u ook USING ( { arg_expr [ AS ] [alias] } [, ...] )
Parameters
sql_string
Een
STRING
letterlijke of variabele die een goed opgemaakte SQL-instructie produceert.U kunt geen instructies nesten
EXECUTE IMMEDIATE
.INTO ( var_name [, ...] )
Retourneert desgewenst de resultaten van één rijquery in SQL-variabelen. Als de query geen rijen retourneert, is
NULL
het resultaat.Als de instructie geen query is in Azure Databricks, wordt er een fout gegenereerd
INVALID_STATEMENT_FOR_EXECUTE_INTO
.Als de query meer dan één rij retourneert, genereert Azure Databricks ROW_SUBQUERY_TOO_MANY_ROWS fout.
-
Een SQL-variabele. Er kan niet meer dan één keer naar een variabele worden verwezen.
-
USING { arg_expr [ AS ] [alias] } [, ...]
sql_string
Als u parametermarkeringen bevat, worden eventueel waarden gekoppeld aan de parameters.arg_expr
Een letterlijke waarde of variabele die is gekoppeld aan een parametermarkering. Als de parametermarkeringen geen naam hebben, is de binding op positie. Voor benoemde parametermarkeringen is binding op naam.
alias
Hiermee overschrijft u de naam die wordt gebruikt om een benoemde parametermarkering te binden
arg_expr
aan elke benoemde parametermarkering, moet één keer worden vergeleken. Niet allearg_expr
moeten overeenkomen.
Voorbeelden
-- A self-contained execution using a literal string
> EXECUTE IMMEDIATE 'SELECT SUM(c1) FROM VALUES(?), (?) AS t(c1)' USING 5, 6;
11
-- A SQL string composed in a SQL variable
> DECLARE sqlStr = 'SELECT SUM(c1) FROM VALUES(?), (?) AS t(c1)';
> DECLARE arg1 = 5;
> DECLARE arg2 = 6;
> EXECUTE IMMEDIATE sqlStr USING arg1, arg2;
11
-- Using the INTO clause
> DECLARE sum INT;
> EXECUTE IMMEDIATE sqlStr INTO sum USING arg1, arg2;
> SELECT sum;
11
-- Using named parameter markers
> SET VAR sqlStr = 'SELECT SUM(c1) FROM VALUES(:first), (:second) AS t(c1)';
> EXECUTE IMMEDIATE sqlStr INTO sum
USING (5 AS first, arg2 AS second);
> SELECT sum;
11
Verwante artikelen:
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor