Aracılığıyla paylaş


DECLARE VARIABLE

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

Sabit ifadenin kullanabildiği her yerde başvurabileceğiniz özel, geçici bir oturum değişkeni oluşturur. SQL ifadelerindeki tanımlayıcıları parametre haline getirmek için değişkenleri, IDENTIFIER söz dizimi ile birlikte de kullanabilirsiniz.

Değişkenler SET VARIABLE deyimi kullanılarak değiştirilir.

Geçici değişkenlere aşağıdakiler içinde başvurulamaz:

  • denetim kısıtlaması
  • oluşturulan sütun
  • varsayılan ifade
  • kalıcı bir SQL UDF'nin gövdesi
  • kalıcı veri görünümünün gövdesi

Geçici değişkenler oturum değişkenleri olarak da adlandırılır.

Sözdizimi

DECLARE [ OR REPLACE ] [ VARIABLE ] variable_name
    [ data_type ] [ { DEFAULT | = } default_expression ]

Parametreler

  • VEYA DEĞİŞTİR

    Belirtilirse, aynı ada sahip değişken değiştirilir.

  • variable_name

    Değişkenin adı. İsim session veya system.session ile nitelenebilir. Belirtilmediği sürece OR REPLACE , adın oturum içinde benzersiz olması gerekir.

  • veri_türü

    Desteklenen herhangi bir veri türü. Eğer data_type belirtilmezse, DEFAULT belirtmelisiniz ve türü default_expression'den türetilir.

  • DEFAULT default_expression veya = default_expression

    Oluşturma işleminden sonra değişkenin ilk değerini tanımlar. default_expression, data_type'ye dönüştürülebilir olmalıdır. Varsayılan bir değer belirtilmediğinde, değişken NULL ile başlatılır.

    İfade bir alt sorgu içeriyorsa Azure Databricks bir INVALID_DEFAULT_VALUE.SUBQUERY_EXPRESSION hatası oluşturur.

Örnekler

-- Create a variable with a default
> DECLARE VARIABLE myvar INT DEFAULT 5;
> VALUES (myvar);
 5

-- Setting a variable
> SET VAR myvar = (SELECT sum(c1) FROM VALUES(1), (2) AS T(c1);
> VALUES (myvar);
 3

-- Variables are the outermost scope.
> SELECT myvar, t.myvar, session.myvar FROM VALUES(1) AS T(myvar);
  1  1  3

> DROP TEMPORARY VARIABLE myvar;

-- A minimalist variable declaration
> DECLARE myvar = 5;
> VALUES (myvar);
 5

-- Using a variable with an IDENTIFIER clause
> DECLARE colname STRING;
> SET VAR colname = 'c1';
> SELECT IDENTIFIER(colname) FROM VALUES(1, 2) AS T(c1, c2);
  1

> SET VAR colname = 'c2';
> SELECT IDENTIFIER(colname) FROM VALUES(1, 2) AS T(c1, c2);
  2