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.
A következőkre vonatkozik:
Databricks SQL
Databricks Runtime 14.3 vagy újabb
Végrehajt egy SQL-utasítást STRING-ként.
Az utasítás opcionálisan átadja az argumentumokat a paraméterjelölőknek, és az eredményeket változókhoz rendeli.
Szintaxis
EXECUTE IMMEDIATE sql_string
[ INTO var_name [, ...] ]
[ USING { arg_expr [ AS ] [alias] } [, ...] ]
A más SQL-dialektusokkal való kompatibilitás érdekében a EXECUTE IMMEDIATE támogatja a USING ( { arg_expr [ AS ] [alias] } [, ...] )
Paraméterek
sql_stringÁllandó
STRINGkifejezés, amely egy jól formázott SQL-utasítást hoz létre.Ha a
sql_stringparaméterjelölőket tartalmaz, akkor azoknak vagy mind pozicionális (?), vagy mind elnevezett (:parm1) paramétereknek kell lennie.A Databricks Runtime 17.3
sql_stringelőtt asql_stringliterálnak vagy változónak kell lennie. És nem ágyazhat beEXECUTE IMMEDIATEutasításokat.INTO ( var_name [, ...] )Opcionálisan egy soros lekérdezés eredményeit adja vissza SQL-változókba. Ha a lekérdezés nem ad vissza sorokat, az eredmény .
NULLHa az utasítás nem lekérdezés, az Azure Databricks hibát jelez
INVALID_STATEMENT_FOR_EXECUTE_INTO.Ha a lekérdezés egynél több sort ad vissza, az Azure Databricks ROW_SUBQUERY_TOO_MANY_ROWS hibát jelez.
-
EGY SQL-változó. Egy változóra csak egyszer lehet hivatkozni.
-
USING { arg_expr [ AS ] [alias] } [, ...]Ha
sql_stringparaméterjelölőket tartalmaz, akkor értékeket köt a paraméterekhez.arg_exprEgy paraméterjelölőhöz kötődő állandó kifejezés. Ha a paraméterjelölők névtelenek, a kötés pozíció szerint történik. Az elnevezett paraméterjelölők esetében a kötés név szerint történik.
A Databricks Runtime 17.3
arg_exprelőtt literálnak vagy változónak kell lennie.aliasFelülírja azt a nevet, amelyet a
arg_expr-hez való kötés során egy megnevezett paraméterjelölőhöz használnak. Minden elnevezett paraméterjelölőnek egyszer egyeznie kell. Nem mindenarg_expr-nek kell egyeznie.
Példák
-- 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