SnowConvert AI - Problèmes généraux¶
SSC-EWI-0001¶
Jeton non reconnu sur la ligne du code source.
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Gravité¶
Critique
Description¶
Ce problème se produit lorsqu’il y a une erreur lors de l’analyse du code source en cours de conversion. Cela signifie qu’il y a une erreur de syntaxe dans le code source ou qu’une instruction spécifique du code n‘est pas encore reconnue.
Exemple de code¶
L’exemple suivant illustre différents scénarios d’erreur d’analyse où une syntaxe non valide est placée dans l’entrée. Notez dans quelle mesure le message varie d’un scénario à l’autre. Ces contenus peuvent être utiles pour isoler et résoudre le problème. Pour plus d’informations, consultez « Contenus des messages » ci-dessous.
Code d’entrée: ¶
Code généré: ¶
Contenu des messages¶
Clause de départ : Spécifie l’emplacement de départ (ligne, colonne et « texte ») du code non reconnu. Le code sera commenté à partir de l’élément « texte » pour chaque élément non reconnu, jusqu’à ce que l’analyseur localise un point de récupération possible.
Clause grammaticale attendue : Spécifie le type de grammaire attendu par l’analyseur. Vérifiez si le code commenté correspond à un type de grammaire attendu.
Clause du dernier jeton correspondant (OPTIONAL) : Peut apparaître si le code non reconnu a été partiellement reconnu. Cette clause indique jusqu’où l’analyseur a reconnu des éléments valides. Vérifiez donc les jetons suivants dans le code commenté pour vous assurer qu’ils sont valides.
Clause d’échec du jeton (OPTIONAL) : Ne peut être présente que lorsqu’une « clause du dernier jeton correspondant » est également présente. Cette clause représente le moment où l’analyseur a finalement déterminé que le code n’était pas valide ou reconnu. Assurez-vous que cet élément peut être placé à cet emplacement syntaxique.
Contenus des messages obsolètes¶
Note
Les éléments de cette liste ne sont pas activement utilisés et sont conservés ici à des fins historiques.
Code de récupération (DEPRECATED) : Ce code est destiné à être utilisé comme code d’erreur, et il peut être fourni pour une meilleure prise en charge lors des demandes de mise à niveau de l’analyseur. Il représente la manière dont l’analyseur a déclenché son mécanisme de récupération.
Meilleures pratiques¶
Vérifiez si le code source contient la bonne syntaxe.
Le message peut être utilisé pour isoler et résoudre le problème.
Si la syntaxe n’est pas prise en charge, elle peut être remplacée manuellement par une syntaxe prise en charge.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0002¶
Il peut être nécessaire de réorganiser les paramètres par défaut.
Note
This EWI is deprecated. SnowConvert AI now automatically reorders default parameters to the end of the parameter list instead of emitting this warning. Please refer to SSC-FDM-0041 for the updated behavior.
Gravité¶
Medium
Description¶
Il peut être nécessaire de réorganiser les paramètres par défaut. Snowflake ne prend en charge les paramètres par défaut qu’à l’issue des déclarations de paramètres.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0003¶
La colonne système de l’objet intégré n’a pas été traduite.
Sévérité ¶
Medium
Description ¶
Cet EWI est généré lorsque SnowConvert AI mappe un objet système intégré (table, vue) vers l’objet Snowflake équivalent, mais qu’il n’y a pas de mappage pour l’une de ses colonnes internes.
Exemple de code ¶
Code d’entrée :
Code de sortie :
Snowflake¶
SSC-EWI-0005¶
Gravité¶
Critique
Description¶
This issue appears when an unexpected transformation error occurs while trying to convert the source code and the output code file can not be generated.
Meilleures pratiques¶
Consultez le fichier de journalisation des erreurs pour obtenir plus d’informations sur le problème.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0006¶
Le format date/numérique actuel peut avoir un comportement différent dans Snowflake.
Gravité¶
Medium
Description¶
Cette erreur est ajoutée, car Snowflake ne prend pas en charge les formats date/numérique dans certaines fonctions, contrairement au langage source.
Note
For SQL Server migrations: Advanced numeric format specifiers (such as P, N, %) are now translated by default without requiring any flag. If you are converting SQL Server code that uses custom single-character date format specifiers (such as %y, %M, %d, %H, %h, %m, %s), consider enabling the
--enableFormatSpecifiersPreview preview flag. This flag enables access to new Snowflake date/time format specifiers that provide more accurate
translations of these formats. See Preview Features Settings for more details.
Note: You must request preview access in your Snowflake account to use the date/time preview features.
Les éléments de format suivants sont ceux qui peuvent se comporter différemment dans Snowflake.:
Date/heure Redshift¶
| Format Element | Description |
|---|---|
| HH | Hour of day (01–12). |
| MS | Millisecond (000–999). |
| US | Microsecond (000000–999999). |
| SSSS, SSSSS | Seconds past midnight (0–86399). |
| Y,YYY | Year (4 or more digits) with comma. |
| YYY | Last 3 digits of year. |
| Y | Last digit of year. |
| IYYY | ISO 8601 week-numbering year(4 or more digits). |
| IYY | Last 3 digits of ISO 8601 week-numbering year. |
| IY | Last 2 digits of ISO 8601 week-numbering year. |
| I | Last digit of ISO 8601 week-numbering year. |
| BC, bc, AD or ad | Era indicator (without periods). |
| B.C., b.c., A.D. or a.d. | Era indicator (with periods). |
| MONTH | Full upper case month name (blank-padded to 9 chars). |
| Month | Full capitalized month name (blank-padded to 9 chars). |
| month | Full lower case month name (blank-padded to 9 chars). |
| DAY | Full upper case day name (blank-padded to 9 chars). |
| Day | Full capitalized day name (blank-padded to 9 chars). |
| day | Full lower case day name (blank-padded to 9 chars). |
| DDD | Day of year (001–366). |
| IDDD | Day of ISO 8601 week-numbering year (001–371; day 1 of the year is Monday of the first ISO week). |
| D | Day of the week, Sunday (1) to Saturday (7). |
| ID | ISO 8601 day of the week, Monday (1) to Sunday (7). |
| W | Week of month (1–5) (the first week starts on the first day of the month). |
| WW | Week number of year (1–53) (the first week starts on the first day of the year). |
| IW | Week number of ISO 8601 week-numbering year (01–53; the first Thursday of the year is in week 1). |
| CC | Century (2 digits) (the twenty-first century starts on 2001-01-01). |
| J | Julian Date. |
| Q | Quarter. |
| RM | Month in upper case Roman numerals (I–XII; I=January). |
| rm | Month in lower case Roman numerals (i–xii; i=January). |
| TZ | Upper case time-zone abbreviation (only supported in to_char). |
| tz | Lower case time-zone abbreviation (only supported in to_char). |
| TZH | Time-zone hours. |
| TZM | Time-zone minutes. |
| OF | Time-zone offset from UTC (only supported in to_char). |
| FM prefix | Fill mode (suppress leading zeroes and padding blanks). |
| TH suffix | Upper case ordinal number suffix. |
| th suffix | Lower case ordinal number suffix. |
| FX prefix | Fixed format global option (see usage notes). |
| TM prefix | Translation mode (use localized day and month names based on lc_time). |
| SP suffix | Spell mode. |
Note
Pour plus d’informations, veuillez vous référer aux formats date/heure PostgreSQL.
Note
La transformation de la fonction TO_CHAR prend en charge la plupart de ces éléments de format. Pour une liste complète des éléments de format pris en charge et de leurs mappages équivalents, veuillez vous référer à la spécification de traduction.
Format BigQuery ¶
Review the BigQuery format elements reference.
Numérique ¶
Modèle |
Description |
|---|---|
PR |
valeur négative entre crochets d’angle |
RN |
Chiffre romain (entrée entre 1 et 3999) |
TH ou th |
suffixe du nombre ordinal |
V |
décaler le nombre de chiffres spécifié (voir notes) |
EEEE |
exposant pour la notation scientifique |
Note
Pour plus d’informations, veuillez vous référer aux formats numériques PostgreSQL.
Exemple de code¶
Code d’entrée :¶
PostgreSQL¶
Code généré :¶
Snowflake¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0007¶
Gravité¶
Critique
Description¶
This error appears when an error occurs in writing the output file.
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0008¶
La clause COLLATE peut avoir un comportement différent dans Snowflake.
Gravité¶
Medium
Description¶
This warning is added when the collate clause is used as a column option because it is supported in Snowflake, but behaves differently in the collate specification. To verify which specifiers are supported in Snowflake, see Collate specifications.
Exemple de code¶
Code d’entrée :¶
Code généré: ¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0009¶
La fonction Regexp_Substr prend uniquement en charge les expressions régulières POSIX.
Gravité¶
Faible
Description¶
Actuellement, Snowflake ne prend pas en charge l’expression régulière étendue au-delà de la syntaxe d’expressions régulières de base POSIX.
This EWI is added every time a function call to REGEX_SUBSTR, REGEX_REPLACE, or REGEX_INSTR is transformed to Snowflake to warn the user about possible unsupported regular expressions. Some of the features not supported are lookahead, lookbehind, and non-capturing groups.
Exemple de code¶
Code d’entrée: ¶
Code généré :¶
Meilleures pratiques¶
Check the regular expression used in each case to determine whether it needs manual intervention. More information about expanded regex support and alternatives in Snowflake can be found here.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0010¶
Gravité¶
Critique
Description¶
Cette erreur apparaît lorsqu’il n’y a pas de règle de transformation pour une instruction de procédure spécifique.
Meilleures pratiques¶
Vérifiez si l’instruction de la procédure est correcte.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0011¶
Gravité¶
Élevé
Description¶
Cette erreur apparaît lorsqu’il y a une fin inattendue de l’instruction dans le code source et que l’erreur ne peut pas être traitée correctement.
Meilleures pratiques¶
Vérifiez si le code source est incomplet ou si l’instruction en cours de conversion se termine correctement.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0012¶
Gravité¶
Élevé
Description¶
Cette erreur apparaît lorsqu’il y a une fin inattendue de l’instruction dans le code source.
Exemple de code¶
Code d’entrée :¶
Code généré: ¶
Recommandation¶
Vérifiez si le code source est incomplet ou si l’instruction en cours de conversion se termine correctement.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0013¶
Gravité¶
Critique
Description¶
Cette erreur apparaît lorsqu’une exception est levée lors de la conversion d’un élément du code source.
Recommandation¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0014¶
Gravité¶
Critique
Description¶
Cette erreur apparaît lorsque le corps d’une instruction de procédure spécifique n’est pas généré.
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0015¶
Fonction multiple Pivot/Unpivot non prise en charge.
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Gravité¶
Medium
Description¶
Cette section décrit les différents problèmes qui pourraient être déclenchés par les clauses PIVOT et UNPIVOT. Les scénarios non pris en charge sont présentés dans le tableau suivant.
PIVOT |
UNPIVOT |
ORACLE |
TERADATA |
|
|---|---|---|---|---|
MULTIPLE COLUMN |
X |
X |
X |
X |
RENAME COLUMN |
X |
X |
X |
X |
MULTIPLE FUNCTION |
X |
X |
X |
|
WITH CLAUSE |
X |
X |
||
XML OUTPUT FORMAT |
X |
X |
||
IN CLAUSE SUBQUERY |
X |
X |
X |
|
IN CLAUSE ANY SEQUENCE |
X |
X |
||
INCLUDE/EXCLUDE NULLS |
X |
X |
X |
MULTIPLE COLUMN¶
Les colonnes multiples ne sont pas prises en charge par les clauses PIVOT et UNPIVOT.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
RENAME COLUMN¶
Renaming columns with aliases is not supported in Snowflake UNPIVOT clauses. SnowConvert will remove aliases for functions or columns to create a valid query and check that this change does not affect the original functionality.
Pour PIVOT, l’utilisation des alias de colonnes n’est prise en charge que dans SnowConvert AI pour Teradata si les deux conditions suivantes sont vraies : toutes les expressions à l’intérieur des clauses IN ont un alias associé, et SnowConvert AI dispose d’informations sur les colonnes qui seront générées en conséquence, soit en fournissant la définition de la table, soit en utilisant une sous-requête avec une liste explicite de colonnes en tant qu’entrée de la clause.
Exemple de code¶
Code d’entrée :¶
CREATE TABLE star1(
country VARCHAR(20),
state VARCHAR(10),
yr INTEGER,
qtr VARCHAR(3),
sales INTEGER,
cogs INTEGER
);
--SAMPLE 1
SELECT * FROM db1.star1p UNPIVOT (column1 FOR for_column
IN (col1 AS 'as_col1', col2 AS 'as_col2')) Tmp;
--SAMPLE 2
SELECT *
FROM star1 PIVOT (
SUM(sales) as ss1 FOR qtr
IN ('Q1' AS Quarter1,
'Q2' AS Quarter2,
'Q3' AS Quarter3)
)Tmp;
--SAMPLE 3
SELECT
*
FROM (
SELECT
country,
state,
yr,
qtr,
sales,
cogs
FROM star1 ) A
PIVOT (
SUM(sales) as ss1 FOR qtr
IN ('Q1' AS Quarter1,
'Q2' AS Quarter2,
'Q3' AS Quarter3)
)Tmp;
Code généré :¶
MULTIPLE FUNCTION¶
La fonction multiple n’est pas prise en charge pour les clauses PIVOT. Parfois, les requêtes de fonctions multiples peuvent être réécrites à l’aide d’instructions de casse. Consultez l’exemple de Teradata suivant pour plus d’informations(https://docs.teradata.com/r/756LNiPSFdY~4JcCCcR5Cw/L0kKSOrOeu_68mcW3o8ilw](https://docs.teradata.com/r/756LNiPSFdY~4JcCCcR5Cw/L0kKSOrOeu_68mcW3o8ilw).
Exemple de code¶
Code d’entrée :¶
Code généré :¶
WITH CLAUSE¶
PIVOT de Teradata dispose d’une clause WITH facultative. Celle-ci n’est pas autorisée dans la clause PIVOT de Snowflake.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
XML OUTPUT FORMAT¶
La sortie XML pour la clause PIVOT n’est pas prise en charge par Snowflake.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
IN CLAUSE SUBQUERY¶
Les sous-requêtes pour la clause IN ne sont pas prises en charge.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
IN CLAUSE ANY SEQUENCE¶
Cette erreur se déclenche lorsque le mot-clé ANY est utilisé dans la clause IN. Celui-ci n’est actuellement pas pris en charge.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
INCLUDE/EXCLUDE NULLS¶
INCLUDE NULLS ou EXCLUDE NULLS ne sont pas des options valides pour les clauses UNPIVOT dans Snowflake.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Si possible, réécrivez la requête. Sinon, aucune action supplémentaire de la part de l’utilisateur n’est requise.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0016¶
Snowflake ne prend pas en charge la clause d’options.
Sévérité ¶
Medium
Description ¶
Cet EWI est ajouté aux instructions DDLs lorsque les OPTIONS comprennent des options non prises en charge par Snowflake.
Exemple de code ¶
Code d’entrée :
BigQuery¶
Code de sortie :
Snowflake¶
SSC-EWI-0020¶
CUSTOM UDF INSERTED.
Gravité¶
Faible
Résumé¶
Il existe plusieurs fonctions définies par l’utilisateur (UDF) fournies par SnowConvert AI utilisées pour reproduire les comportements du langage source qui ne sont pas prises en charge par Snowflake. Ces fonctionnalités et leurs descriptions sont détaillées ci-dessous.
Les UDFs peuvent être trouvées dans le dossier « Aides UDF » créé dans le chemin de sortie après la migration.
Meilleures pratiques¶
Vérifiez si le dossier Aides UDF est en cours de création avec des fichiers à l’intérieur.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0021¶
Non pris en charge.
Gravité¶
Medium
Description¶
Ce message apparaît lorsqu’un nœud spécifique ou une instruction du code source n’est pas pris en charge dans Snowflake.
Exemple de code¶
Code d’entrée: ¶
Code généré :¶
Meilleures pratiques¶
Si cette erreur se produit, cela signifie qu’il n’existe pas d’équivalent Snowflake pour le nœud en cours de conversion.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0022¶
Un ou plusieurs identificateurs dans une instruction spécifique sont considérés comme des paramètres par défaut.
Avertissement
L’EWI n’est généré que lorsque Javascript est le langage cible pour les procédures stockées. Il s’agit d’une fonctionnalité de traduction obsolète, car l’Exécution de scripts Snowflake est le langage cible recommandé pour les procédures stockées.
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Gravité¶
Medium
Description¶
Cette erreur est utilisée pour signaler qu’un ou plusieurs identificateurs dans une instruction spécifique sont considérés comme des paramètres par défaut.
Exemple de code¶
Code d’entrée: ¶
Code généré :¶
Meilleures pratiques¶
Assurez-vous que toutes les dépendances (tables et vues) liées à l’instruction de procédure sont en cours de migration.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0023¶
Examen des performances - Une boucle contient une instruction Insert, Delete ou Update.
Avertissement
L’EWI n’est généré que lorsque Javascript est le langage cible pour les procédures stockées. Il s’agit d’une fonctionnalité de traduction obsolète, car l’Exécution de scripts Snowflake est le langage cible recommandé pour les procédures stockées.
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Gravité¶
Faible
Description¶
Cet avertissement signale un élément que l’utilisateur devrait peut-être prendre en compte en ce qui concerne les performances.
Exemple de code¶
Code d’entrée: ¶
Code généré :¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0025¶
Les variables temporelles de liaison peuvent nécessiter un changement dans la requête.
Avertissement
L’EWI n’est généré que lorsque Javascript est le langage cible pour les procédures stockées. Il s’agit d’une fonctionnalité de traduction obsolète, car l’Exécution de scripts Snowflake est le langage cible recommandé pour les procédures stockées.
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Gravité¶
Faible
Description¶
L’action des variables temporelles de liaison peut nécessiter des modifications dans la requête qui les contient.
Exemple de code¶
Code d’entrée: ¶
Code généré :¶
Meilleures pratiques¶
Aucune autre action de l’utilisateur n’est requise.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0026¶
Les variables qualifiées peuvent nécessiter une conversion.
Avertissement
L’EWI n’est généré que lorsque Javascript est le langage cible pour les procédures stockées. Il s’agit d’une fonctionnalité de traduction obsolète, car l’Exécution de scripts Snowflake est le langage cible recommandé pour les procédures stockées.
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Gravité¶
Faible
Description¶
Cet avertissement est ajouté lorsqu’il existe une requête avec une variable comportant un membre qualifié, comme un enregistrement Oracle ou une variable For Loop Teradata. Selon l’endroit où la variable est utilisée et le type de valeur, une conversion peut être nécessaire pour assurer un bon fonctionnement.
Exemple de code¶
Code d’entrée: ¶
Code généré :¶
Code généré avec ajustements: ¶
Meilleures pratiques¶
Vérifiez si une conversion en date, heure ou horodatage est nécessaire pour la liaison. Certains cas ne sont pas nécessaires, car une conversion implicite est effectuée sur la valeur.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0027¶
L’instruction suivante utilise une variable/un littéral avec une requête non valide et elle ne sera pas exécutée.
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Gravité¶
Medium
Description¶
Cet avertissement est utilisé pour signaler qu’une instruction spécifique utilise une variable ou un littéral avec une requête non valide et que, pour cette raison, elle ne sera pas exécutée.
Exemple de code¶
Code d’entrée: ¶
Code généré :¶
Meilleures pratiques¶
Vérifiez si une conversion en date, heure ou horodatage est nécessaire pour la liaison. Certains cas ne sont pas nécessaires, car une conversion implicite est effectuée sur la valeur.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0028¶
Type non pris en charge par Snowflake
Gravité¶
Medium
Description¶
Ce message apparaît lorsqu’un type n’est pas pris en charge dans Snowflake.
Exemple¶
Code d’entrée (Oracle) :¶
Code généré :¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0029¶
Le format de données de tables externes n’est pas pris en charge dans Snowflake.
Gravité¶
Medium
Description¶
Snowflake prend en charge les formats de tables externes suivants :
BigQuery |
Snowflake |
|---|---|
AVRO |
AVRO |
CSV |
CSV |
NEWLINE_DELIMITED_JSON |
JSON |
ORC |
ORC |
PARQUET |
PARQUET |
Lorsqu’une table externe comprend un autre FORMAT non spécifié dans le tableau ci-dessus, cet EWI sera généré pour informer l’utilisateur que ce FORMAT n’est pas pris en charge.
Exemple de code¶
Code d’entrée :¶
BigQuery¶
Code généré :¶
Snowflake¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0030¶
L’instruction ci-dessous possède des utilisations du SQL dynamique.
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Gravité¶
Medium
Description¶
Cette erreur est utilisée pour indiquer que l’instruction possède des utilisations du SQL dynamique. Chaque langage source spécifique possède son propre ensemble d’instructions pouvant exécuter du SQL dynamique. Le SQL dynamique fait référence au code qui est construit sous forme de texte à l’aide des outils de manipulation de chaînes fournis par le langage du moteur de base de données.
Ce scénario est considéré comme un modèle complexe, car le SQL dynamique est construit et exécuté lors de l’exécution, ce qui rend plus difficile le suivi et le débogage des erreurs. Cette erreur est destinée à aider à détecter certains problèmes qu’un analyseur de code statique comme Snow Convert ne peut pas détecter.
Exemple de code¶
Teradata¶
Entrée¶
Sortie¶
Oracle¶
Entrée¶
Sortie¶
SQL Server¶
Entrée¶
Sortie¶
Questions relatives à SQL dynamique¶
Un point important à prendre en compte est que lors de la migration du code SQL dynamique, SnowConvert AI ne signalera aucun type de problème à l’intérieur du SQL dynamique dans le code de sortie ou dans les rapports d’évaluation. Cela se produira même lorsque la documentation d’un problème ou la spécification de traduction indique qu’un problème sera toujours ajouté au code de sortie. Voici un exemple de migration dans Oracle où cette situation peut être rencontrée :
Oracle¶
Snowflake¶
Dans l’exemple précédent, la requête et l’affectation de la variable à l’intérieur de la procédure seront converties exactement de la même manière. La différence est que dans le code SQL dynamique, les problèmes de conversion ne seront pas indiqués dans le code de sortie et dans les rapports d’évaluation.
Meilleures pratiques¶
Utilisez cette balise pour suivre chaque instruction construite dynamiquement et examiner son exactitude lors du dépannage.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0031¶
Fonction non prise en charge.
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Sévérité ¶
Medium
Description ¶
Cet avertissement est utilisé pour signaler qu’une fonction intégrée Teradata, Oracle ou SQL Server n’est pas prise en charge.
Exemple de code ¶
Code d’entrée (Oracle) :¶
Code de sortie : ¶
Bonnes pratiques ¶
Veuillez vous référer aux liens suivants pour vérifier la transformation actuelle de la fonction spécifique que vous essayez de convertir :
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0032¶
External table requires an external stage to access an external location, define and replace the EXTERNAL_STAGE placeholder
Description¶
Lors de la transformation de l’instruction CREATE EXTERNAL TABLE, SnowConvert AI générera un espace réservé EXTERNAL_STAGE devant être remplacé par la zone de préparation externe créée pour la connexion avec l’emplacement externe de Snowflake.
Veuillez vous référer aux guides suivants pour configurer l’intégration de stockage et la zone de préparation externe nécessaires dans votre compte Snowflake :
Pour les tables externes faisant référence à Google Cloud Storage
Pour les tables externes faisant référence à Azure Blob Storage
Exemple de code¶
Code d’entrée :¶
BigQuery¶
Code généré :¶
Snowflake¶
CREATE OR REPLACE EXTERNAL TABLE test.Employees_test
(
Employee_id INTEGER AS CAST(GET_IGNORE_CASE($1, 'c1') AS INTEGER),
Name STRING AS CAST(GET_IGNORE_CASE($1, 'c2') AS STRING),
Mail STRING AS CAST(GET_IGNORE_CASE($1, 'c3') AS STRING),
Position STRING AS CAST(GET_IGNORE_CASE($1, 'c4') AS STRING),
Salary INTEGER AS CAST(GET_IGNORE_CASE($1, 'c5') AS INTEGER)
)
!!!RESOLVE EWI!!! /*** SSC-EWI-0032 - EXTERNAL TABLE REQUIRES AN EXTERNAL STAGE TO ACCESS gs://sc_external_table_bucket, DEFINE AND REPLACE THE EXTERNAL_STAGE PLACEHOLDER ***/!!!
LOCATION = @EXTERNAL_STAGE
AUTO_REFRESH = false
PATTERN = 'folder_with_csv/Employees.csv'
FILE_FORMAT = (TYPE = CSV SKIP_HEADER =1);
Meilleures pratiques¶
Configurez votre connexion externe dans le compte Snowflake et remplacez l’espace réservé EXTERNAL_STAGE pour effectuer la transformation.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0033¶
Format supprimé. Informations sémantiques introuvables.
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Gravité¶
Faible
Description¶
Cet avertissement apparaît lorsqu’une colonne utilisée dans une fonction CAST avec un format de sortie spécifique n’a pas été trouvée dans le code source.
Exemple de code¶
Code d’entrée (Teradata) :¶
Code généré: ¶
Meilleures pratiques¶
Assurez-vous que toutes les dépendances (tables et vues) liées à l’instruction de procédure sont en cours de migration.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0034¶
Format supprimé.
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Gravité¶
Faible
Description¶
Cet avertissement apparaît lorsque le format de la colonne utilisée dans une fonction CAST est supprimé.
Exemple de code¶
Code d’entrée (Teradata) :¶
Code généré: ¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0035¶
Instruction de vérification non prise en charge.
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Gravité¶
Faible
Description¶
La contrainte CHECK n’est pas prise en charge par Snowflake, mais elle n’affecte pas le fonctionnement.
Exemple de code¶
Code d’entrée Oracle :¶
Code généré: ¶
Code d’entrée Teradata: ¶
Code généré: ¶
Code d’entrée SqlServer¶
Code généré :¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0036¶
Type de données converti en autre type de données.
Gravité¶
Faible
Description¶
Cet avertissement apparaît lorsqu’un type de données est changé en un autre.
Exemple de code¶
Code source :¶
Code converti: ¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0040¶
Clause non prise en charge.
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Gravité¶
Faible
Description¶
This warning is added when there is a statement that is not supported in Snowflake.
Exemple de code¶
Dans l’exemple suivant, la clause PERCENT de SQL Server est utilisée sur la requête SELECT. Cela n’est pas pris en charge par Snowflake.
Code d’entrée (SQL Server) :¶
Code source : ¶
Meilleures pratiques¶
Examinez la fonctionnalité d’origine de l’instruction et vérifiez si elle est réellement nécessaire pour vos besoins spécifiques dans Snowflake.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0041¶
Le fichier présente un encodage inattendu et n’a pas été traduit.
Note
Cet EWI est obsolète. Veuillez vous référer à la documentation SSC-OOS-0001.
Description¶
Ce problème se produit lorsqu’un fichier de code source a un format d’encodage qui n’est pas reconnu par l’outil. L’encodage des caractères est le processus d’attribution de nombres à des caractères graphiques et, en l’occurrence, à des caractères écrits de langage humain. Par conséquent, l’erreur indique que l’outil de conversion n’a pas pu reconnaître certains caractères.
Meilleures pratiques¶
Tous les fichiers du dossier d’entrée doivent avoir le même encodage pour éviter cette erreur.
The appropriate encoding should be selected through the conversion settings or by utilizing the –encoding conversion parameter with the CLI. To determine which encoding to select online tools such as Free Online Formater can be used or run the command
file -i *in the case of Linux or OS.Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0045¶
Le nom de la colonne est un mot-clé réservé de Snowflake.
Gravité¶
Medium
Description¶
Dans certains cas, les noms de colonnes qui sont valides dans le langage source peuvent entrer en conflit avec les mots-clés réservés de Snowflake. Ces conflits surviennent, car Snowflake réserve un ensemble de mots-clés qui ne peuvent pas être utilisés directement comme noms de colonnes sans traitement spécial. Pour plus de détails, référez-vous à la documentation officielle de Snowflake sur les mots clés réservés et limités.
Exemple de code¶
Entrée¶
Sortie¶
Meilleures pratiques¶
Envisagez de renommer les colonnes qui utilisent des noms qui ne sont pas pris en charge dans Snowflake.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0046¶
Nested function/procedure declarations are considered a complex pattern and not supported in Snowflake.
Gravité¶
Critique
Description¶
Snowflake ne prend pas en charge la déclaration de fonctions/procédures imbriquées. Cet avertissement est ajouté à toute instruction de création de fonction ou de création de procédure dans laquelle des déclarations imbriquées ont été trouvées.
Exemple de code¶
Entrée¶
Sortie¶
Meilleures pratiques¶
Supprimez les déclarations imbriquées de la fonction/procédure.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0049¶
Une table temporaire globale est en cours de référence.
Note
Cet EWI est obsolète. Veuillez vous référer à la documentation SSC-FDM-0023.
Gravité¶
Medium
Description¶
SnowConvert AI transforme les tables temporaires globales en création de tables ordinaires. Les références à ces tables peuvent se comporter différemment de ce qui est attendu.
Exemple de code¶
Entrée¶
Sortie¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0052¶
Objet inutilisable
Gravité¶
Medium
Description¶
Cette erreur se produit lorsque le code source utilise un paramètre ou une variable qui n’est pas pris en charge ou qui n’a pas été reconnu par l’outil de conversion.
Exemple de code¶
Code d’entrée (Oracle) :¶
Code généré :¶
Meilleures pratiques¶
Recherchez une alternative au type de données utilisé.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0053¶
L’objet peut ne pas fonctionner.
Gravité¶
Faible
Description¶
Cette erreur se produit lorsque l’outil de conversion n’a pas pu déterminer le type de données d’une variable. Cela peut se produire à cause d’une déclaration de variable manquante.
Exemple de code¶
Code d’entrée (Oracle) :¶
Code généré :¶
Meilleures pratiques¶
Assurez-vous que le code d’entrée contient la variable déclarée.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0054¶
Sous-requête de jointure extérieure non prise en charge
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Gravité¶
Faible
Description¶
Cette erreur se produit lorsqu’une sous-requête corrélée est trouvée dans une expression logique OR d’une JOIN OUTER (Left, Right ou Full). Dans ce cas, elle peut produire des résultats incohérents ou provoquer l’erreur suivante :
Erreur de compilation SQL : le type de sous-requête non pris en charge ne peut pas être évalué.
Ces limitations relatives aux sous-requêtes sont brièvement mentionnées dans la documentation Snowflake, et certaines informations à leur sujet sont également disponibles dans les [forums Snowflake].(https://community.snowflake.com/s/question/0D53r00009mIxwYCAS/sql-compilation-error-unsupported-subquery-type-cannot-be-evaluated)
Exemple de code¶
Code d’entrée (Teradata) :¶
Code généré :¶
Meilleures pratiques¶
Vérifiez que le code de sortie ne produit pas d’erreur de compilation.
Vérifiez l’équivalence fonctionnelle du code de sortie.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0056¶
Custom Types Not Supported
Note
Deprecation: This issue code is deprecated. SnowConvert now translates many Oracle and cross-dialect CREATE TYPE definitions to Snowflake native user-defined types where supported. This entry’s Input Code and Generated Code examples are kept for historical reference and may not match current tool output. For current behavior, see the translation reference for your source: Oracle, IBM DB2, Teradata, SQL Server / Azure Synapse, PostgreSQL / Greenplum / Netezza, Sybase IQ.
Gravité¶
Faible
Description¶
This message appears when a user-defined type (UDT) is defined. User-defined types are not supported in Snowflake, so references to the custom type are changed to an appropriate Snowflake type (such as VARIANT or OBJECT).
Snowflake has a UDT Private Preview feature available. For more information about accessing this feature, please contact udt-prpr@snowflake.com.
Note
La définition de type est commentée, mais elle est toujours prise en compte pour la résolution des utilisations. Consultez SSC-EWI-0062 pour plus d’informations.
Exemple de code¶
Code d’entrée (Oracle) :¶
Code généré :¶
Meilleures pratiques¶
Consider using Snowflake’s OBJECT or VARIANT data types as alternatives to user-defined types for storing complex structured data.
For more information about the UDT Private Preview feature, contact udt-prpr@snowflake.com.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0058¶
La fonctionnalité n’est actuellement pas prise en charge par l’Exécution de scripts Snowflake.
Gravité¶
Medium
Description¶
Cette erreur se produit lorsqu’une instruction utilisée dans une procédure de création n’est actuellement pas prise en charge par l’Exécution de scripts Snowflake.
Exemple de code¶
Code d’entrée (Oracle) :¶
Code généré :¶
Meilleures pratiques¶
Aucune action de la part de l’utilisateur final n’est requise.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0062¶
Utilisation du type personnalisé changée en variant
Gravité¶
Faible
Description¶
Ce message apparaît lorsqu’un type personnalisé est référencé, puis que son utilisation est changée en variant.
Note
Ce message est fortement lié à SSC-EWI-0056.
Exemple de code¶
Code d’entrée (Oracle) :¶
Code généré :¶
Meilleures pratiques¶
N’oubliez pas de transformer également toutes ses données d’entrée en un type de données conforme à variant.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0064¶
Type personnalisé référencé dans la requête introuvable
Gravité¶
Élevé
Description¶
Cette erreur se produit lorsqu’un type personnalisé est référencé dans une source pour une instruction DML, mais que le type personnalisé n’a jamais été défini.\ Par exemple, il peut s’agir d’une colonne de table dont le type pourrait être une UDT mais n’a jamais été défini.
Avertissement
Il convient de ne pas la confondre avec SSC-FDM-0015, qui correspond au moment où un type personnalisé a été référencé dans une requête DDL.
Exemple de code¶
Code d’entrée (Oracle) :¶
Code généré :¶
Meilleures pratiques¶
Vérifiez que le type qui a été référencé a été défini dans le code d’entrée.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0066¶
Expression non prise en charge dans Snowflake.
Sévérité ¶
Élevé
Description ¶
Cette erreur est utilisée pour informer l’utilisateur qu’une expression spécifique n’est pas prise en charge dans Snowflake.
Exemple de code ¶
Code d’entrée :¶
Code de sortie : ¶
Bonnes pratiques ¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0067¶
L’UDF a été transformée en procédure Snowflake. L’appel de procédures dans une requête n’est pas pris en charge.
Gravité¶
Élevé
Description¶
Cette erreur est ajoutée lorsqu’un appel à une UDF (fonction définie par l’utilisateur) est trouvé dans une requête. Les UDFs Oracle, les UDFs à l‘intérieur de paquets et certaines UDFs SQL Server sont en cours de transformation en procédures stockées Snowflake, qui ne peuvent pas être appelées à partir d’une requête.
La fonction est transformée en procédure stockée pour maintenir l’équivalence fonctionnelle, et l’appel de fonction est transformé en une fonction UDF Snowflake vide.
Note
Cet EWI est fortement lié à SSC-EWI-0068.
Exemple de code¶
SQL Server :¶
Code d’entrée¶
Code généré¶
Oracle :¶
Code d’entrée¶
Code généré¶
Meilleures pratiques¶
Le code source peut avoir besoin d’être restructuré pour s’adapter à l’[approche] des fonctions définies par l’utilisateur de Snowflake (https://docs.snowflake.com/fr/sql-reference/user-defined-functions.html#udfs-user-defined-functions).
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0068¶
La fonction définie par l’utilisateur a été transformée en procédure Snowflake.
Les fonctions définies par l’utilisateur de Snowflake ne prennent pas en charge les mêmes fonctionnalités qu’Oracle ou SQL Server. Pour maintenir l’équivalence fonctionnelle, la fonction est transformée en procédure stockée Snowflake. Cela affectera leur utilisation dans les requêtes.
Exemple de code¶
SQL Server :¶
Code d’entrée¶
Code généré¶
Oracle :¶
Code d’entrée¶
CREATE OR REPLACE FUNCTION FUN1(PAR1 VARCHAR)
RETURN VARCHAR
IS
VAR1 VARCHAR(20);
VAR2 VARCHAR(20);
BEGIN
SELECT COL1 INTO VAR1 FROM TABLE1 where col1 = 1;
VAR2 := PAR1 || VAR1;
RETURN VAR2;
END;
/
Code généré¶
Meilleures pratiques¶
Séparez les requêtes internes pour conserver la même logique.
Le code source peut avoir besoin d’être restructuré pour s’adapter à l’[approche] des fonctions définies par l’utilisateur de Snowflake (https://docs.snowflake.com/fr/sql-reference/user-defined-functions.html#udfs-user-defined-functions).
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0073¶
Examen de l’équivalence fonctionnelle en attente
Gravité¶
Medium
Description¶
This EWI is added when there is a grammar clause in the input platform that has not been reviewed by the SnowConvert AI developer team. The code may require manual revision for it to work in Snowflake.
Exemple de code¶
SQLServer :¶
Code d’entrée¶
Code généré¶
Notez qu’à la ligne 6 du code d’entrée, il existe une référence à une instruction INSERT avec des VALUES DEFAULT. Cette instruction n’est actuellement pas prise en charge par SnowConvert AI, et c’est pour cette raison que dans les lignes 11 et 12, l’EWI est généré.
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0077¶
Cycle trouvé entre les appels de CTE. Impossible d’ordonner les CTEs.
Gravité¶
Faible
Description¶
Cet avertissement est ajouté lorsqu’une requête qui contient plusieurs appels de référence de CTE (expression de table commune) créent un cycle qui ne peut pas déterminer l’ordre d’appel des CTEs. Ainsi, les CTEs ne peuvent pas être ordonnées, et la requête restera la source.
Exemple de code¶
Code d’entrée (Teradata) :¶
Code généré :¶
Meilleures pratiques¶
Aucune autre action de l’utilisateur n’est requise.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0080¶
La valeur par défaut n’est pas autorisée au niveau des colonnes binaires.
Sévérité ¶
Faible
Description ¶
This EWI is added when the source code has a default value for BINARY data type, which is not supported in Snowflake SQL
Exemple de code ¶
Code d’entrée (SqlServer) :
Code de sortie :
Bonnes pratiques ¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0084¶
XMLTABLE n’est pas pris en charge.
Gravité¶
Élevé
Description¶
La fonction XMLTABLE n’est actuellement pas prise en charge.
Exemple de code¶
Code d’entrée (DB2) :¶
Code généré :¶
Meilleures pratiques¶
Consultez ce blog pour les transformations XML dans Snowflake.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0086¶
Remplacement des caractères non valides pour le nouvel identificateur
Note
Cet EWI est obsolète. Veuillez vous référer à la documentation SSC-FDM-0030.
Gravité¶
Faible
Description¶
L’identificateur donné contient des caractères non valides pour le langage de sortie. Ces caractères ont été remplacés par leurs codes UTF-8.
Exemple de code¶
Code d’entrée (Oracle) :¶
Code généré :¶
Meilleures pratiques¶
Aucune action de la part de l’utilisateur final n’est requise.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0092¶
La vue matérialisée a été convertie en vue normale.
Danger
Obsolète
Gravité¶
Faible
Description¶
Currently, all Materialized Views are being converted to regular Views. This process eliminates additional clauses that the Materialized Views may have had. For more information, see Limitations on creating materialized views.
Exemple de code¶
Code d’entrée: ¶
Code généré :¶
Meilleures pratiques¶
Aucune autre action de l’utilisateur n’est requise.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0094¶
Déclaration des balises non prise en charge
Gravité¶
Faible
Description¶
Actuellement, il n’existe pas d’équivalent pour la déclaration des balises dans l’Exécution de scripts Snowflake. Ainsi, un EWI est ajouté, et la balise est commentée.
Exemple de code¶
Code d’entrée (Oracle) :¶
Code généré :¶
Meilleures pratiques¶
Aucune action de la part de l’utilisateur final n’est requise.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0095¶
Create Type not supported in Snowflake
Note
Deprecation: This issue code is deprecated. Snowflake supports native user-defined types, and SnowConvert emits CREATE TYPE for many supported patterns. This entry’s Input Code and Generated Code examples are preserved as historical reference. For current conversion behavior, see the translation reference for your source: Oracle, IBM DB2, Teradata, SQL Server / Azure Synapse, PostgreSQL / Greenplum / Netezza, Sybase IQ.
Gravité¶
Élevé
Description¶
User-defined types (UDTs) created with the CREATE TYPE statement are not currently supported in Snowflake. When SnowConvert AI encounters a CREATE TYPE statement, it adds this warning to indicate that manual intervention is required.
Snowflake has a UDT Private Preview feature available. For more information about accessing this feature, please contact udt-prpr@snowflake.com.
Exemple de code¶
Code d’entrée (Oracle) :¶
Code généré :¶
Meilleures pratiques¶
Consider using Snowflake’s OBJECT or VARIANT data types as alternatives to user-defined types for storing complex structured data.
For more information about the UDT Private Preview feature, contact udt-prpr@snowflake.com.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0101¶
Nom de balise de transaction commenté, car non applicable dans Snowflake
Gravité¶
Faible
Description¶
Snowflake n’opère pas de noms de balises de transactions, car il ne devrait pas y avoir de transactions imbriquées à identifier dans des instructions COMMIT ou ROLLBACK différentes.
Exemple de code¶
Code d’entrée (SQL Server) :¶
Code généré :¶
Meilleures pratiques¶
Aucune action de la part de l’utilisateur final n’est requise.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0102¶
Suppression de l’option d’instruction du code, déjà gérée lors de la conversion vers Snowflake
Note
Cet EWI est obsolète.
Gravité¶
Faible
Description¶
Les instructions Snowflake peuvent supprimer certaines options lorsqu’elles sont gérées par la règle de conversion. Ainsi, celle-ci sera supprimée du code de sortie, mais la fonctionnalité est équivalente.
Exemple de code¶
Code d’entrée (PostgreSQL) :¶
Code généré :¶
Meilleures pratiques¶
Aucune action de la part de l’utilisateur final n’est requise.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0107¶
Littéral d’intervalle non pris en charge dans le scénario actuel
Gravité¶
Élevé
Description¶
Les intervalles Snowflake ne peuvent être utilisés que dans les opérations arithmétiques. Les intervalles utilisés dans un autre scénario ne sont pas pris en charge.
Exemple de code ¶
Code d’entrée :
Code de sortie :
Bonnes pratiques ¶
Aucune action de la part de l’utilisateur final n’est requise.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0108¶
La sous-requête suivante correspond à au moins l’un des modèles considérés comme non valides, et elle peut générer des erreurs de compilation.
Gravité¶
Élevé
Description¶
Dans Snowflake, il existe plusieurs modèles et éléments dans une sous-requête qui ne sont pas pris en charge et qui la rendent non exécutable. Conformément à la documentation sur les sous-requêtes de Snowflake , les types de sous-requêtes suivants sont pris en charge :
Sous-requêtes scalaires non corrélées dans n’importe quel endroit où une expression de valeur peut être utilisée.
Sous-requêtes scalaires corrélées dans des clauses WHERE.
Sous-requêtes EXISTS, ANY / ALL et IN dans des clauses WHERE. Ces sous-requêtes peuvent être corrélées ou non.
Veuillez noter que la liste ci-dessus n’est pas exhaustive, ce qui signifie que les sous-requêtes qui ne correspondent à aucun des types spécifiés peuvent encore être considérées comme valides.
Pour éviter les erreurs, SnowConvert AI connaît un ensemble de modèles de sous-requêtes qui invalident normalement les sous-requêtes. Cet EWI est ajouté pour avertir l’utilisateur que la sous-requête correspond au moins à l’un de ces modèles et qu’elle peut donc produire des erreurs lors de la compilation dans Snowflake.
Exemple de code¶
Code d’entrée: ¶
Code généré :¶
Meilleures pratiques¶
Vérifiez la sous-requête dans Snowflake. Si elle compile sans problème, alors cet EWI peut être ignoré en toute sécurité.
Veuillez consulter la section relative aux modèles complexes pour les sous-requêtes dans le rapport d’évaluation. Elle contient une liste des modèles qui invalident normalement les sous-requêtes et leurs occurrences. Elle peut être utilisée pour examiner les sous-requêtes migrées et les raisons pour lesquelles elles sont considérées comme non valides.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0109¶
La syntaxe Alter Table n’est pas applicable dans Snowflake.
Gravité¶
Medium
Description¶
La syntaxe Alter Table utilisée n’est pas applicable dans Snowflake. Ce message est donc ajouté.
Exemple de code :¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Aucune autre action de l’utilisateur n’est requise.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0110¶
Transformation non effectuée en raison de dépendances manquantes
Gravité¶
Faible
Description¶
Lorsqu’il manque des dépendances, l’EWI est ajouté pour indiquer qu’une transformation ne peut pas être exécutée. SnowConvert AI utilise des arborescences de syntaxe abstraites pour créer un modèle sémantique du code d’entrée, qui est ensuite utilisé pour générer un nouveau code répliquant la fonctionnalité de la source d’origine. Cependant, dans ce scénario particulier, la transformation n’a pas pu être achevée, car le modèle sémantique manque de certaines dépendances.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Ajoutez les dépendances manquantes au code d’entrée.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0111¶
Un seul niveau d’imbrication est autorisé pour les procédures imbriquées dans Snowflake.
Gravité¶
Critique
Description¶
Snowflake ne prend en charge qu’un seul niveau d’imbrication pour les procédures. La définition d’une procédure imbriquée dans une autre procédure imbriquée n’est pas autorisée. Si ce modèle est détecté, cette erreur sera générée.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Refactorisez votre code pour éviter plus d’un niveau de procédures imbriquées. Déplacez les procédures profondément imbriquées au niveau supérieur ou restructurez votre logique pour respecter la limite d’imbrication à un seul niveau de Snowflake.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0112¶
La surcharge des procédures imbriquées n’est pas prise en charge.
Gravité¶
Critique
Description¶
Snowflake ne prend pas en charge la surcharge des procédures imbriquées. Autrement dit, vous ne pouvez pas définir plusieurs procédures imbriquées portant le même nom mais ayant des listes de paramètres différentes au sein d’une même procédure parente. Si le code source contient des procédures imbriquées surchargées, cette erreur sera générée pour indiquer que de tels modèles ne sont pas pris en charge dans Snowflake.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Toute tentative de surcharger des procédures imbriquées dans Snowflake entraînera des erreurs de compilation ou un comportement inattendu. Pour assurer la compatibilité, vous devez remanier votre code pour éviter de surcharger les procédures imbriquées. Envisagez de renommer les procédures de sorte que chaque procédure imbriquée possède un nom unique dans sa portée, ou restructurez votre logique pour éliminer le besoin de surcharge. En outre, examinez et mettez à jour tous les appels de procédure afin d’utiliser les nouveaux noms uniques.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0113¶
L’utilisation de l’UDF d’Exécution de scripts Snowflake n’est pas prise en charge dans ce scénario.
Gravité¶
Medium
Description¶
L’utilisation des UDFs d’Exécution de scripts Snowflake dans des scénarios spécifiques n’est pas prise en charge. Les cas suivants ne sont pas pris en charge :
Les UDFs d’Exécution de scripts Snowflake ne peuvent pas être utilisées lors de la création d’une vue matérialisée.
Les UDFs d’Exécution de scripts Snowflake ne peuvent pas être utilisées pour spécifier une valeur de colonne par défaut.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0114¶
MIXED CONTINUE AND EXIT EXCEPTION HANDLERS IN THE SAME BLOCK ARE NOT SUPPORTED BY SNOWFLAKE SCRIPTING.
Gravité¶
Medium
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
In database systems like DB2, Teradata, and others, it is possible to declare both CONTINUE and EXIT exception handlers in the same procedural block. However, Snowflake Scripting does not support mixing CONTINUE and EXIT handlers within the same EXCEPTION block.
When SnowConvert AI encounters a procedure with both types of handlers declared in the same block, it generates separate EXCEPTION blocks for each handler type and adds this EWI to indicate that manual review and testing are required to ensure the converted code maintains the intended behavior.
Key Behavioral Differences:
CONTINUE HANDLER: Allows execution to continue after handling the exception
EXIT HANDLER: Terminates the current block after handling the exception
Since Snowflake cannot mix these behaviors in a single EXCEPTION block, the conversion may result in different execution flow compared to the source system.
Exemple de code¶
Code d’entrée :¶
DB2
Code généré :¶
Snowflake
Meilleures pratiques¶
When dealing with mixed CONTINUE and EXIT handlers:
Review Exception Handling Logic: Carefully review the converted code to understand how exceptions are handled in each block.
Test Thoroughly: Test all error scenarios to ensure the behavior matches the source system’s expectations.
Consider Refactoring: If possible, refactor the code to use only one type of handler (either all CONTINUE or all EXIT) within a block.
Use Nested Blocks: Consider restructuring the logic using nested BEGIN…END blocks, where each block has its own exception handling strategy.
Document Behavior Changes: Document any differences in exception handling behavior for future maintenance.
Recommended Pattern¶
Instead of mixing handlers, consider this approach:
SSC-EWI-0115¶
Iceberg table contains unsupported datatypes.
Gravité¶
Medium
Description¶
This EWI is emitted for tables that contain datatypes currently not supported by Snowflake on Iceberg tables. Currently, Snowflake offers support for Iceberg tables in V2 format.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Consider modifying the columns and logic to make use of datatypes supported in Iceberg tables
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0116¶
Snowflake does not support interval values inside semi-structured type columns.
Gravité¶
Medium
Description¶
This EWI is emitted when the --UseIntervalDatatype preview flag is enabled and an INTERVAL data type appears inside a semi-structured type column such as ARRAY, MAP, or STRUCT. Snowflake does not support storing INTERVAL values inside VARIANT-based columns. The outer type is still converted (for example, STRUCT becomes VARIANT), but the EWI warns that the INTERVAL values within cannot be preserved.
For more details on how interval types are handled across languages, see the Interval Data Types translation reference.
Exemple de code¶
Input Code (BigQuery):¶
Generated Code (BigQuery):¶
Input Code (Hive):¶
Generated Code (Hive):¶
Meilleures pratiques¶
Consider extracting interval values from semi-structured columns into dedicated INTERVAL-typed columns
If interval values must be stored in VARIANT columns, store them as strings and convert back to intervals when needed using CAST expressions
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0117¶
Snowflake does not support interval data type in UDFs or Snowflake Scripting.
Gravité¶
Medium
Description¶
This EWI is emitted when the --UseIntervalDatatype preview flag is enabled and an INTERVAL data type is used in a context not yet supported by Snowflake Scripting: UDF or procedure parameters, return types, or variable declarations. The INTERVAL type is preserved in the output for reference, but the EWI warns that it will not work at runtime in these contexts.
For more details on how interval types are handled across languages, see the Interval Data Types translation reference.
Exemple de code¶
Input Code (BigQuery):¶
Generated Code (BigQuery):¶
Code d’entrée (Teradata) :¶
Generated Code (Teradata):¶
Meilleures pratiques¶
Consider using VARCHAR parameters for interval values and converting them inside the procedure body using CAST expressions
If the interval parameter is used only for datetime arithmetic within the procedure, consider passing the numeric components separately
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0118¶
Snowflake does not support interval columns in Dynamic Tables.
Gravité¶
Medium
Description¶
This EWI is emitted when the --UseIntervalDatatype preview flag is enabled and a materialized view (converted to a Snowflake Dynamic Table) references columns with INTERVAL data types. Snowflake Dynamic Tables do not support INTERVAL-typed columns. The Dynamic Table is still generated, but the EWI warns that it may fail at runtime.
For more details on how interval types are handled across languages, see the Interval Data Types translation reference.
Exemple de code¶
Input Code (BigQuery):¶
Generated Code (BigQuery):¶
Meilleures pratiques¶
Consider excluding INTERVAL columns from the Dynamic Table query, or casting them to VARCHAR before selecting
If the interval values are needed in downstream queries, consider creating a regular view instead of a Dynamic Table for the INTERVAL columns
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-0119¶
Interval type column was converted to VARCHAR.
Gravité¶
Faible
Description¶
This EWI is emitted in Dynamic Table contexts when the --UseIntervalDatatype preview flag is not enabled and a source column had an INTERVAL data type that was converted to VARCHAR. This alerts users that the column in the Dynamic Table query originally referenced an interval-typed column that lost its type during conversion.
Exemple de code¶
Input Code (BigQuery):¶
Generated Code (BigQuery):¶
Meilleures pratiques¶
Consider enabling the
--UseIntervalDatatypepreview flag to preserve native INTERVAL types where possibleReview the VARCHAR columns in the output to ensure the string representation of interval values is compatible with your application logic
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.