- 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>'
)
Syntaxe pour l’appel des fonctions :
SYS_CONTEXT(
'SNOWFLAKE$APPLICATION' ,
'<function>' , '<argument>' [ , ... ]
)
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
NAMENom de l’application.
CURRENT_VERSIONVersion actuelle de l’application dans laquelle l’instruction SQL actuelle est exécutée.
La valeur de la propriété
CURRENT_VERSIONpeut différer de la propriétéINSTALLED_VERSIONdans 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_VERSIONest la nouvelle version, etINSTALLED_VERSIONest 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_VERSIONest la version avec laquelle la procédure ou la requête a commencé à s’exécuter, etINSTALLED_VERSIONest la version après la mise à niveau terminée.
CURRENT_PATCHNuméro de correctif actuel de l’application dans laquelle l’instruction SQL actuelle est exécutée.
INSTALLED_VERSIONVersion installée de l’application dans laquelle l’instruction SQL actuelle est exécutée.
INSTALLED_PATCHNuméro de correctif installé de l’application dans laquelle l’instruction SQL actuelle est exécutée.
IS_DEV_MODETRUEsi 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;
'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 :
La valeur de retour dépend de la propriété que vous récupérez ou de la fonction que vous appelez.
Si vous appelez SYS_CONTEXT avec l’espace de noms SNOWFLAKE$APPLICATION hors de tout contexte pris en charge, la fonction renvoie 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$APPLICATIONne 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');"
Exemples¶
L’exemple suivant renvoie la version actuelle de l’application :
SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'CURRENT_VERSION');