Catégories :

Fonctions contextuelles (général)

SYS_CONTEXT (espace de noms SNOWFLAKE$APPLICATION)

Renvoie des informations sur le contexte dans lequel une instruction est exécutée dans une Application native Snowflake.

Vous pouvez appeler cette fonction dans les contextes suivants :

  • Une procédure stockée ou une application Streamlit configurée pour utiliser les droits du propriétaire et qui fait partie ou appartient à une Snowflake Native App.

  • Une UDF, vue ou politique qui appartient à une Snowflake Native App.

  • Une UDF, vue ou politique qui fait partie du contenu de données partagé d’une Snowflake Native App.

Dans tout autre contexte, la fonction renvoie NULL.

Voir aussi :

SYS_CONTEXT , SYS_CONTEXT (espace de noms SNOWFLAKE$ENVIRONMENT) , SYS_CONTEXT (espace de noms SNOWFLAKE$ORGANIZATION) , SYS_CONTEXT (espace de noms SNOWFLAKE$ORGANIZATION_SESSION) , SYS_CONTEXT (espace de noms SNOWFLAKE$SESSION) , IS_APPLICATION_ROLE_ACTIVATED (fonction SYS_CONTEXT)

Syntaxe

Syntaxe pour la récupération des propriétés :

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

Syntaxe pour l’appel des fonctions :

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

Arguments

'SNOWFLAKE$APPLICATION'

Spécifie que vous souhaitez récupérer une propriété ou appeler une fonction pour renvoyer des informations de contexte sur l’application dans laquelle la fonction est appelée.

'property'

Nom de la propriété à récupérer. Vous pouvez spécifier les propriétés suivantes :

Propriété

Description

NAME

Nom de l’application.

CURRENT_VERSION

Version actuelle de l’application dans laquelle l’instruction SQL actuelle est exécutée.

La valeur de la propriété CURRENT_VERSION peut différer de la propriété INSTALLED_VERSION dans les situations suivantes :

  • L’instruction SQL est exécutée dans un script d’installation qui met à jour l’application vers une nouvelle version.

    Dans ce cas, CURRENT_VERSION est la nouvelle version, et INSTALLED_VERSION est la version actuellement installée qui est en cours de mise à niveau.

  • L’exécution d’une procédure ou requête de longue durée a commencé avant la fin de la mise à niveau.

    Dans ce cas, CURRENT_VERSION est la version avec laquelle la procédure ou la requête a commencé à s’exécuter, et INSTALLED_VERSION est la version après la mise à niveau terminée.

CURRENT_PATCH

Numéro de correctif actuel de l’application dans laquelle l’instruction SQL actuelle est exécutée.

INSTALLED_VERSION

Version installée de l’application dans laquelle l’instruction SQL actuelle est exécutée.

INSTALLED_PATCH

Numéro de correctif installé de l’application dans laquelle l’instruction SQL actuelle est exécutée.

IS_DEV_MODE

TRUE si l’application se trouve en mode de développement ; sinon, FALSE.

Pour comparer cette valeur à la valeur BOOLEAN TRUE ou FALSE, définissez la valeur sur BOOLEAN. Par exemple :

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

Nom de la fonction que vous voulez appeler. Vous pouvez appeler les fonctions suivantes :

'argument' [ , ... ]

Arguments à transmettre à la fonction que vous souhaitez appeler.

Renvoie

La fonction renvoie une valeur VARCHAR ou NULL :

Notes sur l’utilisation

  • Si vous spécifiez l’appel de fonction dans une chaîne entre guillemets doubles dans un shell, isolez le caractère $ avec une barre oblique inverse (\) de sorte que $APPLICATION ne soit pas interprété comme une variable de shell.

    Par exemple, si vous utilisez Snowflake CLI et que vous spécifiez l’instruction SQL comme argument de ligne de commande entre guillemets doubles :

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

Exemples

L’exemple suivant renvoie la version actuelle de l’application :

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