Syntaxe ASOF JOIN : utilisation restreinte des mots-clés (en attente)¶
Attention
Ce changement de comportement est présent dans le bundle 2024_01.
Pour connaître le statut actuel du bundle, reportez-vous à Historique du bundle.
La fonction ASOF JOIN se comporte comme suit :
- Avant la modification
L’utilisation de ASOF et MATCH_CONDITION comme noms d’objets et alias n’est pas limitée.
- Après la modification
ASOF et MATCH_CONDITION sont de nouveaux mots-clés. L’utilisation de ces mots-clés dans la syntaxe de la commande SELECT est limitée.
Noms d’objets
Si une instruction SELECT utilise ASOF ou MATCH_CONDITION comme nom d’une table, d’une vue ou d’une vue en ligne, vous devez l’identifier comme suit :
Si l’objet a été créé avec des guillemets doubles dans le nom, utilisez le même nom entre guillemets doubles.
Si l’objet a été créé sans guillemets doubles dans le nom, utilisez des guillemets doubles et des lettres majuscules.
Par exemple, les instructions suivantes ne sont plus autorisées et renvoient des erreurs :
SELECT * FROM asof; WITH match_condition AS (SELECT * FROM T1) SELECT * FROM match_condition;
Si vous avez créé les objets avec des guillemets doubles, corrigez le problème en utilisant des guillemets doubles :
SELECT * FROM "asof"; WITH "match_condition" AS (SELECT * FROM T1) SELECT * FROM "match_condition";
Si vous avez créé les objets sans guillemets doubles, corrigez le problème en utilisant des guillemets doubles et des lettres majuscules :
SELECT * FROM "ASOF"; WITH "MATCH_CONDITION" AS (SELECT * FROM T1) SELECT * FROM "MATCH_CONDITION";
Note
Snowflake vous recommande de ne plus utiliser ces noms d’objets dans vos applications.
Noms d’alias
Si une instruction SELECT utilise ASOF ou MATCH_CONDITION comme alias, vous devez utiliser AS avant l’alias ou mettre l’alias entre guillemets doubles. Par exemple, les instructions suivantes ne sont plus autorisées et renvoient des erreurs :
SELECT * FROM t1 asof; SELECT * FROM t2 match_condition;
Réglez le problème de l’une des manières suivantes :
SELECT * FROM t1 AS asof; SELECT * FROM t1 "asof"; SELECT * FROM t2 AS match_condition; SELECT * FROM t2 "match_condition";
Réf : 1138