Fonctions contextuelles¶
Cette famille de fonctions permet de collecter des informations sur le contexte dans lequel l’instruction est exécutée. Ces fonctions sont évaluées au maximum une fois par instruction.
Dans ce chapitre :
Liste de fonctions¶
Sous-catégorie |
Fonction |
Remarques |
---|---|---|
Contexte général |
||
Alias pour CURRENT_TIMESTAMP. |
||
Alias pour CURRENT_TIME. |
||
Alias pour CURRENT_TIMESTAMP. |
||
Contexte de la session |
||
Renvoie le localisateur de compte. |
||
Renvoie le nom du compte. |
||
Contexte de l’objet de la session |
||
Contexte d’alerte |
Notes sur l’utilisation¶
Les fonctions contextuelles ne nécessitent généralement pas d’arguments.
Pour se conformer aux normes ANSI, les fonctions contextuelles suivantes peuvent être appelées sans parenthèses dans les instructions SQL :
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURRENT_USER
LOCALTIME
LOCALTIMESTAMP
Note
Si vous définissez une variable Snowflake Scripting sur une expression qui appelle l’une de ces fonctions (par exemple,
my_var := <function_name>();
), vous devez inclure les parenthèses.
Exemples¶
Affichez l’entrepôt virtuel, la base de données et le schéma actuels pour la session :
SELECT CURRENT_WAREHOUSE(), CURRENT_DATABASE(), CURRENT_SCHEMA();
+---------------------+--------------------+------------------+
| CURRENT_WAREHOUSE() | CURRENT_DATABASE() | CURRENT_SCHEMA() |
|---------------------+--------------------+------------------+
| MY_WAREHOUSE | MY_DB | PUBLIC |
|---------------------+--------------------+------------------+
Affichez la date, l’heure et l’horodatage actuels (notez que les parenthèses ne sont pas nécessaires pour appeler ces fonctions) :
SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;
+--------------+--------------+-------------------------------+
| CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP |
|--------------+--------------+-------------------------------|
| 2024-06-07 | 10:45:15 | 2024-06-07 10:45:15.064 -0700 |
+--------------+--------------+-------------------------------+
Dans un bloc Snowflake Scripting, appelez la fonction CURRENT_DATE sans parenthèses pour définir une variable dans une instruction SQL :
EXECUTE IMMEDIATE
$$
DECLARE
currdate DATE;
BEGIN
SELECT CURRENT_DATE INTO currdate;
RETURN currdate;
END;
$$
;
+-----------------+
| anonymous block |
|-----------------|
| 2024-06-07 |
+-----------------+
Dans un bloc Snowflake Scripting, essayer de définir une variable sur une expression qui appelle la fonction CURRENT_DATE sans parenthèses génère une erreur :
EXECUTE IMMEDIATE
$$
DECLARE
today DATE;
BEGIN
today := CURRENT_DATE;
RETURN today;
END;
$$
;
000904 (42000): SQL compilation error: error line 5 at position 11
invalid identifier 'CURRENT_DATE'
Le même bloc renvoie la date actuelle lorsque la fonction est appelée avec les parenthèses :
EXECUTE IMMEDIATE
$$
DECLARE
today DATE;
BEGIN
today := CURRENT_DATE();
RETURN today;
END;
$$
;
+-----------------+
| anonymous block |
|-----------------|
| 2024-06-07 |
+-----------------+