Kategorien:

Kontextfunktionen (Allgemein)

SYS_CONTEXT (SNOWFLAKE$APPLICATION-Namespace)

Gibt Informationen zu dem Kontext zurück, in dem eine Anweisung in einer Snowflake Native App ausgeführt wird.

Sie können diese Funktion in den folgenden Kontexten aufrufen:

  • Einer gespeicherte Prozedur oder Streamlit-App, die für die Verwendung von Eigentümerrechte vorkonfiguriert ist und sich innerhalb einer Snowflake Native App befindet oder dieser gehört.

  • Einer UDF, Ansicht oder Richtlinie, die einer Snowflake Native App gehört.

  • Einer UDF, Ansicht oder Richtlinie, die Teil von freigegebene Dateninhalten einer Snowflake Native App ist.

In jedem anderen Kontext gibt die Funktion NULL zurück.

Siehe auch:

SYS_CONTEXT , SYS_CONTEXT (SNOWFLAKE$ENVIRONMENT-Namespace) , SYS_CONTEXT (SNOWFLAKE$ORGANIZATION-Namespace) , SYS_CONTEXT (SNOWFLAKE$ORGANIZATION_SESSION-Namespace) , SYS_CONTEXT (SNOWFLAKE$SESSION-Namespace) , IS_APPLICATION_ROLE_ACTIVATED (SYS_CONTEXT-Funktion)

Syntax

Syntax für das Abrufen von Eigenschaften:

SYS_CONTEXT(
  'SNOWFLAKE$APPLICATION' ,
  '<property>'
)
Copy

Syntax für den Aufruf von Funktionen:

SYS_CONTEXT(
  'SNOWFLAKE$APPLICATION' ,
  '<function>' , '<argument>' [ , ... ]
)
Copy

Argumente

'SNOWFLAKE$APPLICATION'

Gibt an, dass Sie eine Eigenschaft abrufen oder eine Funktion aufrufen möchten, um Kontextinformationen zu der Anwendung zurückzugeben, in der die Funktion aufgerufen wird.

'property'

Name der Eigenschaft, die Sie abrufen möchten. Sie können die folgenden Eigenschaften angeben:

Eigenschaft

Beschreibung

NAME

Der Name der Anwendung.

CURRENT_VERSION

Aktuelle Version der Anwendung, in der die aktuelle SQL-Anweisung ausgeführt wird.

Der Wert der CURRENT_VERSION-Eigenschaft kann sich von der INSTALLED_VERSION-Eigenschaft in den folgenden Situationen unterscheiden:

  • Die SQL-Anweisung wird in einem:doc:Setup-Skript </developer-guide/native-apps/creating-setup-script> ausgeführt, das die Anwendung auf eine neue Version aktualisiert.

    In diesem Fall ist CURRENT_VERSION die neue Version, und INSTALLED_VERSION ist die aktuell installierte Version, die aktualisiert wird.

  • Die Ausführung einer Prozedur oder Abfrage mit langer Laufzeit wurde gestartet, bevor ein Upgrade abgeschlossen war.

    In diesem Fall ist CURRENT_VERSION die Version, bei der die Ausführung der Prozedur oder Abfrage gestartet wurde, und INSTALLED_VERSION ist die Version nach Abschluss des Upgrades.

CURRENT_PATCH

Nummer des aktuellen Patches der Anwendung, in der die aktuelle SQL-Anweisung ausgeführt wird.

INSTALLED_VERSION

Installierte Version der Anwendung, in der die aktuelle SQL-Anweisung ausgeführt wird.

INSTALLED_PATCH

Nummer des installierten Patches der Anwendung, in der die aktuelle SQL-Anweisung ausgeführt wird.

IS_DEV_MODE

TRUE, wenn sich die Anwendung im Entwicklungsmodus befindet; andernfalls FALSE.

Zum Vergleich dieses Werts mit dem BOOLEAN-Wert TRUE oder FALSE müssen Sie den Wert in BOOLEAN umwandeln. Beispiel:

SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'IS_DEV_MODE')::BOOLEAN = TRUE;
Copy
'function'

Name der Funktion, die Sie aufrufen möchten. Sie können die folgenden Funktionen aufrufen:

'argument' [ , ... ]

Argumente, die an die Funktion übergeben werden, die Sie aufrufen möchten.

Rückgabewerte

Die Funktion gibt einen VARCHAR-Wert oder NULL zurück:

Nutzungshinweise

  • Wenn Sie den Funktionsaufruf in einer Zeichenfolge in doppelten Anführungszeichen angeben, versehen Sie das $-Zeichen mit einem Backslash (\), als Escapezeichen, damit $APPLICATION nicht als Shell-Variable interpretiert wird.

    Wenn Sie beispielsweise Snowflake CLI verwenden und die SQL-Anweisung als Befehlszeilenargument in doppelten Anführungszeichen angeben:

    snow sql --query "SELECT SYS_CONTEXT('SNOWFLAKE\$APPLICATION', 'NAME');"
    
    Copy

Beispiele

Das folgende Beispiel gibt die aktuelle Version der Anwendung zurück:

SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'CURRENT_VERSION');
Copy