Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks SQL
Databricks Runtime 14.3 ke atas
Menjalankan pernyataan SQL yang disediakan sebagai STRING.
Pernyataan secara opsional meneruskan argumen ke penanda parameter dan menetapkan hasilnya ke variabel.
Sintaks
EXECUTE IMMEDIATE sql_string
[ INTO var_name [, ...] ]
[ USING { arg_expr [ AS ] [alias] } [, ...] ]
Untuk kompatibilitas dengan dialek SQL lainnya, EXECUTE IMMEDIATE juga mendukung USING ( { arg_expr [ AS ] [alias] } [, ...] )
Parameter-parameternya
sql_stringEkspresi
STRINGkonstanta, menghasilkan pernyataan SQL yang terbentuk dengan baik.Jika
sql_stringberisi penanda parameter, penanda yang tersedia harus semuanya bersifat posisional (?) atau semuanya dinamakan (:parm1).Sebelum Databricks Runtime 17.3
sql_stringharus berupa literal atau variabel. Anda tidak dapat menumpukEXECUTE IMMEDIATEpernyataan.INTO ( var_name [, ...] )Secara opsional mengembalikan hasil kueri baris tunggal ke dalam variabel SQL. Jika kueri tidak mengembalikan baris hasilnya adalah
NULL.Jika pernyataan bukan kueri, Azure Databricks menghasilkan
INVALID_STATEMENT_FOR_EXECUTE_INTOkesalahan.Jika kueri mengembalikan lebih dari satu baris, Azure Databricks menimbulkan kesalahan ROW_SUBQUERY_TOO_MANY_ROWS .
-
Variabel SQL. Variabel mungkin tidak dirujuk lebih dari sekali.
-
USING { arg_expr [ AS ] [alias] } [, ...]Opsional, jika
sql_stringberisi penanda parameter, mengikat nilai ke parameter.arg_exprEkspresi konstanta yang mengikat ke penanda parameter. Jika penanda parameter tidak disebutkan namanya, pengikatannya berdasarkan posisi. Untuk penanda parameter bernama, pengikatan adalah berdasarkan nama.
Sebelum Databricks Runtime 17.3,
arg_exprharus berupa nilai literal atau variabel.aliasMengganti nama yang digunakan untuk menghubungkan
arg_exprdengan penanda parameter bernama. Setiap penanda parameter bernama harus dicocokkan sekali. Tidak semuaarg_exprharus dicocokkan.
Contoh
-- 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