Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
SQL do Databricks
Databricks Runtime 14.3 e superior
Executa uma instrução SQL fornecida como um STRING.
Opcionalmente, a instrução passa argumentos para marcadores de parâmetro e atribui os resultados a variáveis.
Sintaxe
EXECUTE IMMEDIATE sql_string
[ INTO var_name [, ...] ]
[ USING { arg_expr [ AS ] [alias] } [, ...] ]
Para compatibilidade com outros dialetos SQL, EXECUTE IMMEDIATE também dá suporte a USING ( { arg_expr [ AS ] [alias] } [, ...] )
Parâmetros
sql_stringUma
STRINGexpressão constante, produzindo uma instrução SQL bem formada.Se
sql_stringcontiver marcadores de parâmetro, eles deverão ser todos posicionais (?) ou todos nomeados (:parm1).Antes do Databricks Runtime 17.3,
sql_stringdeve ser um literal ou variável. Além disso, não é possível aninharEXECUTE IMMEDIATEdeclarações.INTO ( var_name [, ...] )Opcionalmente, retorna os resultados de uma consulta de linha única em variáveis SQL. Se a consulta não retornar linhas, o resultado será
NULL.Se a instrução não for uma consulta, o Azure Databricks gerará o erro
INVALID_STATEMENT_FOR_EXECUTE_INTO.Se a consulta retornar mais de uma linha, o Azure Databricks gerará o erro ROW_SUBQUERY_TOO_MANY_ROWS.
-
Uma variável SQL. Uma variável pode não ser referenciada mais de uma vez.
-
USING { arg_expr [ AS ] [alias] } [, ...]Opcionalmente, se
sql_stringcontiver marcadores de parâmetro, ele associará valores aos parâmetros.arg_exprUma expressão constante que se associa a um marcador de parâmetro. Se os marcadores de parâmetro não forem nomeados, a associação será por posição. Para marcadores de parâmetro nomeados, a associação é por nome.
Antes do Databricks Runtime 17.3,
arg_exprdeve ser um literal ou uma variável.aliasSubstitui o nome usado para associar
arg_expra um marcador de parâmetro nomeado. Cada marcador de parâmetro nomeado deve ser correspondido uma vez. Nem todos osarg_exprdevem ser correspondidos.
Exemplos
-- 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