Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: Databricks Runtime
ab Version 14.1 und höher
Variablen sind typ- und schemaqualifizierte Objekte, die Werte speichern, die für eine Sitzung privat sind. In Azure Databricks werden Variablen innerhalb einer Sitzung mithilfe der DECLARE VARIABLE-Anweisung temporär deklariert.
Die Begriffe temporäre Variable und Sitzungsvariable sind austauschbar.
Das Schema, in dem sich temporäre Variablen befinden, ist system.session.
Eine Variable wird implizit am Ende der Sitzung abgelegt, die sie definiert. Sie können sie jedoch explizit früher mit der DROP VARIABLE Anweisung ablegen.
Wenn eine Variable definiert wird, ist ihr Wert NULL oder das Ergebnis des optional angegebenen Standardausdrucks.
Sie können den Wert einer beliebigen Anzahl von Variablen mit der SET Variablen-Anweisung jederzeit während der Sitzung ändern.
Innerhalb einer Abfrage teilen Variablennamen ihren Namespace mit Spaltennamen, Spaltenaliasen und Funktionsparameternamen. Variablen werden im Falle von Namenskonflikten zuletzt in der Reihenfolge der Auflösung angegeben.
Variablen unterscheiden sich semantisch von Parametermarkierungen auf drei Arten:
- Parametermarkierungen sind nur innerhalb einer einzelnen Anweisung vorhanden. Die aufrufende API muss den Wert und den Typ bereitstellen. Variablen sind für die Dauer einer Sitzung vorhanden, sodass sie in mehreren Anweisungen referenziert werden können, ohne dass für jede Anweisung ein Wert übergeben werden muss.
- Variablen können festgelegt werden, ohne den Kontext von SQL zu verlassen.
- Variablen können in den Körpern temporärer Ansichten und SQL-Funktionen referenziert werden. Wenn Sie auf eine temporäre Ansicht oder temporäre SQL-Funktion verweisen, wird der aktuelle Wert einer variablen im Textkörper verwendet.
Die IDENTIFIER Klausel akzeptiert Variablen als Argumente. Auf diese Weise können Sie Bezeichner mithilfe von Variablen und Ergebnissen von Abfragen parametrisieren, die zum Festlegen dieser Variablen verwendet werden.
Examples
-- A verbose definition of a temporary variable
> DECLARE OR REPLACE VARIABLE myvar INT DEFAULT 17;
-- A dense definition, including derivation of the type from the default expression
> DECLARE address = named_struct('street', 'Grimmauld Place', 'number', 12);
-- Referencing a variable
> SELECT myvar, session.address.number;
17 12
-- Setting a single variable
> SET VAR myvar = (SELECT max(c1) FROM VALUES (1), (2) AS t(c1));
> SELECT myvar;
2
-- Setting multiple variables
> SET VAR (myvar, address) = (SELECT address.number, named_struct('street', address.street, 'number', 10));
> SELECT myvar, address;
12 {"street":"Grimmauld Place","number":10}
-- Drop a variable
> DROP TEMPORARY VARIABLE myvar;
> DROP TEMPORARY VARIABLE IF EXISTS address;
-- Use the IDENTIFIER clause with a variable
> DECLARE view = 'tempv';
> CREATE OR REPLACE TEMPORARY VIEW IDENTIFIER(view) (c1) AS SELECT 1;
> SELECT * FROM IDENTIFIER(view);
1