Aracılığıyla paylaş


HEMEN YÜRÜT

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 14.3 ve üzeri

olarak STRINGsağlanan bir SQL deyimi yürütür. deyimi isteğe bağlı olarak bağımsız değişkenleri parametre işaretçilerine geçirir ve sonuçları değişkenlere atar.

Sözdizimi

EXECUTE IMMEDIATE sql_string
        [ INTO var_name [, ...] ]
        [ USING { arg_expr [ AS ] [alias] } [, ...] ]

Diğer SQL diyalektleriyle uyumluluk için, EXECUTE IMMEDIATEUSING ( { arg_expr [ AS ] [alias] } [, ...] )

Parametreler

  • sql_string

    İyi STRING biçimlendirilmiş bir SQL deyimi üreten değişmez değer veya değişken.

    Deyimleri iç içe EXECUTE IMMEDIATE yerleştiremezsiniz.

  • INTO ( var_name [, ...] )

    İsteğe bağlı olarak tek satırlı sorgunun sonuçlarını SQL değişkenlerine döndürür. Sorgu satır döndürmezse sonuç olur NULL.

    Deyimi bir sorgu değilse, Azure Databricks hata oluşturur INVALID_STATEMENT_FOR_EXECUTE_INTO .

    Sorgu birden fazla satır döndürürse Azure Databricks ROW_SUBQUERY_TOO_MANY_ROWS hata verir.

    • var_name

      BIR SQL değişkeni. Bir değişkene birden çok kez başvurulamayabilir.

  • USING { arg_expr [ AS ] [alias] } [, ...]

    İsteğe bağlı olarak, parametre işaretçileri içeriyorsa sql_string , değerler içindeki değerleri parametrelere bağlar.

    • arg_expr

      Parametre işaretçisine bağlanan değişmez değer veya değişken. Parametre işaretçileri adlandırılmamışsa bağlama konuma göre yapılır. Adlandırılmış parametre işaretçileri için bağlama ada göre yapılır.

    • alias

      Adlandırılmış parametre işaretçisine bağlanmak arg_expr için kullanılan adı geçersiz kılar. Adlandırılmış her parametre işaretçisi bir kez eşleştirilmelidir. Tümü arg_expr eşleşmemelidir.

Örnekler

-- 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