Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              Gäller för:
 Databricks SQL 
 Databricks Runtime 14.3 och senare
Kör en SQL-instruktion som tillhandahålls som en STRING.
Instruktionen skickar eventuellt argument till parametermarkörer och tilldelar resultatet till variabler.
Syntax
EXECUTE IMMEDIATE sql_string
        [ INTO var_name [, ...] ]
        [ USING { arg_expr [ AS ] [alias] } [, ...] ]
För kompatibilitet med andra SQL-dialekter stöder EXECUTE IMMEDIATE även USING ( { arg_expr [ AS ] [alias] } [, ...] )
Parametrar
sql_stringEtt
STRINGkonstant uttryck som producerar en välformulerad SQL-instruktion.Om
sql_stringinnehåller parametermarkörer måste de vara alla positionella (?) eller alla namngivna (:parm1).Före Databricks Runtime 17.3
sql_stringmåste vara en literal eller en variabel. Och du kan inte nästlaEXECUTE IMMEDIATEinstruktioner.INTO ( var_name [, ...] )Du kan också returnera resultatet av en enskild radfråga i SQL-variabler. Om frågan inte returnerar några rader är
NULLresultatet .Om instruktionen inte är en fråga, genererar Azure Databricks ett
INVALID_STATEMENT_FOR_EXECUTE_INTOfel.Om frågan returnerar mer än en rad genererar Azure Databricks ROW_SUBQUERY_TOO_MANY_ROWS fel.
- 
En SQL-variabel. Det går inte att referera till en variabel mer än en gång.
 
- 
 USING { arg_expr [ AS ] [alias] } [, ...]Om
sql_stringinnehåller parametermarkörer kan du också binda in värden till parametrarna.arg_exprEtt konstant uttryck som binder till en parametermarkör. Om parametermarkörerna inte är namngivna är bindningen efter position. För namngivna parametermarkörer är bindningen efter namn.
Före Databricks Runtime 17.3
arg_exprmåste vara en literal eller en variabel.aliasÅsidosätter namnet som används för att binda
arg_exprtill en namngiven parametermarkör. Varje namngiven parametermarkör måste matchas en gång. Allaarg_exprmåste inte matchas.
Exempel
-- 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;
> DECLARE sqlStr = 'SELECT SUM(c1) FROM VALUES(:first), (:second) AS t(c1)';
> EXECUTE IMMEDIATE sqlStr INTO sum USING arg1, arg2;
> SELECT sum;
  11
-- Using named parameter markers
> DECLARE sum INT;
> DECLARE 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
-- Using constant expressions
> DECLARE func STRING DEFAULT 'sum';
> EXECUTE IMMEDIATE 'SELECT ' || func || '(c1) FROM VALUES(:first), (:second) AS t(c1)'
  USING 5 + 7 AS first, length('hello') AS second;
 19