SnowConvert AI - Différences fonctionnelles générales¶
SSC-FDM-0001¶
Les vues qui sélectionnent toutes les colonnes d’une seule table ne sont pas requises dans Snowflake.
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Les vues qui sélectionnent uniquement toutes les colonnes d’une seule table et qui ne comportent aucune clause de filtrage ne sont pas requises dans Snowflake et peuvent affecter les performances.
Exemple de code¶
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-FDM-0002¶
La sous-requête corrélée peut présenter des différences fonctionnelles.
Description¶
Ce message est émis lorsqu’une sous-requête corrélée (sous-requête qui fait référence à une colonne de la requête externe) est localisée. Ce type de sous-requête peut, dans certains cas, présenter certaines différences fonctionnelles dans Snowflake (Utilisation des sous-requêtes).
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-FDM-0003¶
Incohérence du taux de conversion
Description¶
Ce message est émis lorsqu’une incohérence du taux de conversion est détectée dans le champ d’évaluation spécifié. Ces situations sont résolues automatiquement par SnowConvert AI. Il ne s’agit donc que d’un avertissement à titre informatif.
Note
Cet avertissement à titre informatif ne sera visible que dans les documents d’évaluation, et non dans le code de sortie.
Meilleures pratiques¶
Bien que SnowConvert AI soit en mesure de résoudre automatiquement le problème, vous pouvez notifier l’équipe d’assistance de SnowConvert AI en envoyant un e-mail à snowconvert-support@snowflake.com et en spécifiant le problème.
SSC-FDM-0004¶
Table externe traduite en table ordinaire
Description¶
This warning is added to clauses related to external handling. Snowflake recommends that all data should be managed inside the Snowflake data storage. For more information on this subject, see the Snowflake data storage considerations.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Les données stockées dans les fichiers des tables externes doivent être déplacées d’une manière ou d’une autre dans la base de données de Snowflake.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-FDM-0005¶
TIME ZONE non pris en charge pour le type de données Time
Description¶
Le type de données Time dans Snowflake ne stocke pas les valeurs Timezone.
TIME internally stores “wallclock” time, and all operations on TIME values are performed without taking any time zone into consideration. For more information, see the Snowflake TIME data type documentation.
Exemple de code¶
Code d’entrée :¶
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-FDM-0006¶
La colonne Number Type peut ne pas se comporter de la même manière dans Snowflake.
Description¶
Ce message de différence fonctionnelle apparaît lorsqu’une colonne NUMBER Type est en cours de création dans une table. Cela est dû à des différences arithmétiques lors de l’exécution d’opérations liées aux échelles des valeurs intermédiaires dans Snowflake, qui peuvent faire échouer certaines opérations. Pour plus d’informations, veuillez consulter l’article de Snowflake dédié aux nombres intermédiaires dans Snowflake et l’article dédié au Nombre en dehors de l’intervalle représentable.
To avoid these arithmetic issues, you can run data samplings to verify the needed precision and scales for these operations.
Exemples de codes¶
Table simple avec des colonnes numérotées¶
Code d’entrée (Oracle) :¶
Code généré :¶
Exemples de problèmes arithmétiques¶
Les exemples suivants montrent comment les problèmes arithmétiques peuvent survenir lors de l’utilisation de colonnes de nombres :
Code Snowflake avec erreur de division :¶
Code Snowflake avec erreur de multiplication :¶
Lors de l’exécution d’une instruction SELECT, Snowflake renverra une erreur :
Nombre en dehors de l’intervalle représentable : type FIXEDSB16 {nullable}, valeur 1.0000000000000000000
Cela est dû au fait que le résultat de l’opération intermédiaire dépasse la capacité maximale de Snowflake. Réduire les échelles numériques de 1 sur chaque exemple corrigera l’erreur et permettra un fonctionnement normal :
Code Snowflake avec division :¶
Code Snowflake avec multiplication :¶
C’est pour cette raison que SnowConvert AI définit l’échelle par défaut des nombres à 18, réduisant ainsi le nombre d’erreurs lors de la migration.
Meilleures pratiques¶
Vérifiez que les valeurs intermédiaires de vos opérations ne dépassent pas une échelle de 37, car il s’agit de la valeur maximale pour Snowflake.
Exécutez des échantillonnages de données sur vos données afin de vous assurer de la précision et de l’échelle requises avant d’exécuter une opération.
Dans la plupart des cas, après avoir effectué des échantillonnages de données ou discuté avec l’entreprise, vous pouvez constater que la précision peut varier. Par exemple, pour les colonnes
MONEY, une précision typique estNUMBER(20,4). Dans Snowflake, vous ne pouvez pas modifier facilement le type de données d’une colonne. Vous pouvez consulter cet article sur notre forum, qui fournit quelques conseils sur la manière de modifier les types de données de vos colonnes et de préserver vos données.Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-FDM-0007¶
Élément avec dépendances manquantes
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Il manque une dépendance pour un objet. Snow Convert n’a pas pu résoudre certains types de données. Il existe également une possibilité d’erreur de déploiement si la dépendance ne figurait pas dans le code source.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Note
Notez que la définition de la TABLE1 est manquante.
Meilleures pratiques¶
Assurez-vous que toutes les dépendances des objets figurent dans le code source.
Si ce n’est pas le cas, recherchez les références à l’objet dans le code et vérifiez si les opérations sont bien gérées.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-FDM-0008¶
On Commit non pris en charge
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description ¶
Les clauses ON COMMIT dans votre instruction CREATE TABLE ont été commentées. Snowflake ne prend pas en charge la clause ON COMMIT, car elle est généralement utilisée pour les tables temporaires dans d’autres dialectes SQL. Si vous devez gérer un comportement spécifique à une transaction, pensez à utiliser les transactions ou les tables temporaires de Snowflake avec des instructions explicites TRUNCATE ou DROP à la place.
Exemple de code¶
Code d’entrée¶
Code généré¶
SSC-FDM-0009¶
Fonctionnalité GLOBAL TEMPORARY TABLE non prise en charge.
Description ¶
Les tables temporaires globales sont considérées comme un modèle complexe en raison du fait qu’elles peuvent provenir de plusieurs variantes, comme indiqué dans la [documentation de Snowflake](https://docs.snowflake.com/fr/sql-reference/sql/create-table# variant-syntaxe).
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-FDM-0010¶
Type modifié en Date.
Description ¶
Ce message s’affiche lorsque SnowConvert AI trouve un SYSDATE DEFAULT et que le type de données n’est NOT un type de données DATE ou TIMESTAMP. Dans ce cas, le type de données est modifié en DATE.
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-FDM-0011¶
Le nom de la colonne est un mot-clé réservé de Snowflake.
Note
Ce FDM est obsolète. Veuillez vous référer à la documentation SSC-EWI-0045.
Description ¶
Les noms de colonnes sont valides pour la langue source, mais sont des mots-clés réservés dans Snowflake.
Exemple de code¶
Code d’entrée (Oracle) :¶
Code généré :¶
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-FDM-0012¶
Le nom de la contrainte dans certaines contraintes n’est pas pris en charge.
Description ¶
Ce message est ajouté lorsqu’une contrainte est de type Null, Not Null ou Default et a été définie avec un nom. Snowflake ne prend pas en charge le nom dans ces contraintes. Par conséquent, SnowConvert AI le supprimera et ajoutera le commentaire.
Exemple de code¶
Code d’entrée¶
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-FDM-0013¶
L’expression du fuseau horaire n’a pas pu être mappée.
Description ¶
This FDM message is added to indicate scenarios where the actual value of a timezone expression cannot be determined, and therefore, the translated results might be different. When the timezone value used is a literal string, SnowConvert AI can take it and map it to its corresponding timezone value in Snowflake. However, when this value is specified by an expression, SnowConvert AI cannot get the timezone value that will be used at runtime and, therefore, cannot map this value to its corresponding Snowflake equivalent.
Exemple de code¶
Code d’entrée (Oracle)¶
Code généré¶
Code d’entrée (Teradata)¶
Code généré¶
¶
Note
Compatibilité des fuseaux horaires dans Oracle
La majorité des expressions de noms de fuseaux horaires dans Oracle sont directement prises en charge dans Snowflake. Le cas échéant, la migration s’exécutera sans problème. Par ailleurs, voici une liste de celles qui ne sont pas prises en charge par Snowflake pour le moment, et qui feront donc l’objet d’un message de différence fonctionnelle.
Afrique/Douala
Asie/Oulan-Bator
Asie/Iekaterinbourg
Canada/Saskatchewan de l’Est
CST
PST
US/Nouveau-Pacifique
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-FDM-0014¶
Instruction de vérification non prise en charge.
Note
Ce FDM est obsolète. Veuillez vous référer à la documentation SSC-EWI-0035.
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-FDM-0015¶
Type personnalisé référencé dans la requête introuvable.
Description ¶
Cette erreur se produit lorsque la définition d’un type personnalisé n’a pas été trouvée ou qu’un type de données intégré Oracle n’a pas été reconnu par SnowConvert.
Exemple de code¶
Code d’entrée (Oracle) :¶
Code généré :¶
Meilleures pratiques¶
Vérifiez que le type du type de données référencé a été défini dans le code d’entrée.
Consultez la [documentation] relative aux types de données de Snowflake(https://docs.snowflake.com/fr/sql-reference/data-types.html) pour trouver un équivalent pour le type de données.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-FDM-0016¶
Les constantes ne sont pas prises en charge par l’Exécution de scripts Snowflake. Elles ont été transformées en variables.
Description ¶
L’Exécution de scripts Snowflake ne prend pas en charge les constantes. Par conséquent, toutes les constantes dans les procédures sont transformées en variables lorsque l’indicateur de l’Exécution de scripts Snowflake est actif.
Exemple de code¶
Oracle :¶
Snowflake Scripting :¶
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-FDM-0017¶
La clause WITH SYSTEM VERSIONING n’est pas prise en charge par Snowflake.
Description¶
La clause WITH SYSTEM VERSIONING dans ANSI SQL est utilisée pour activer la gestion des versions système d’une table, vous permettant de maintenir un historique des modifications apportées aux données de la table au fil du temps. Cette clause n’est pas prise en charge par Snowflake.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
You can use Time Travel in Snowflake, Time Travel enables accessing historical data (that is, data that has been changed or deleted) at any point within a defined period. It serves as a powerful tool for performing the following tasks:
Restaurer des objets liés aux données (tables, schémas et bases de données) qui peuvent avoir été supprimés accidentellement ou intentionnellement.
Dupliquer et sauvegarder des données à partir de points clés dans le passé.
Analyser l’utilisation et la manipulation des données sur des périodes de temps précises.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-FDM-0018¶
La clause CHARACTER SET n’est pas prise en charge par Snowflake.
Description¶
L’option de colonne CHARACTER SET détermine l’ensemble de caractères autorisé pouvant être stocké dans la colonne. Cette clause n’est pas prise en charge par Snowflake.
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-FDM-0019¶
Semantic information could not be loaded.
Description¶
Cet avertissement indique à l’utilisateur que SnowConvert AI n’a pas pu charger les informations sémantiques pour un objet spécifique. Cela est très probablement dû à la présence d’un objet dupliqué portant le même nom, qui a empêché SnowConvert AI de charger les informations sémantiques de cet objet et de terminer l’analyse.
Exemple de code¶
Code d’entrée :¶
Code généré: ¶
Meilleures pratiques¶
Vérifiez la présence d’objets dupliqués dans le code d’entrée, car cela peut affecter le chargement des informations sémantiques.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-FDM-0020¶
Les jeux de résultats multiples sont renvoyés dans des tables temporaires
Description¶
Les procédures d’Exécution de scripts Snowflake ne permettent de renvoyer qu’un seul jeu de résultats par procédure.
Pour répliquer le comportement de Teradata, lorsqu’il existe au moins deux jeux de résultats à renvoyer, ils sont stockés dans des tables temporaires. La procédure d’Exécution de scripts Snowflake renverra un tableau contenant le nom des tables temporaires.
Exemple de code¶
Code d’entrée (Teradata) :¶
Code généré :¶
Meilleures pratiques¶
Pour obtenir les jeux de résultats, il est nécessaire d’exécuter une requête SELECT avec le nom des tables temporaires renvoyées par la procédure.
Dans la mesure du possible, évitez les procédures qui renvoient plusieurs jeux de résultats. Au lieu de cela, attribuez-leur une seule responsabilité pour des résultats plus directs.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-FDM-0021¶
Create Index non pris en charge
Description¶
Pour des raisons architecturales, Snowflake ne prend pas en charge les index. Par conséquent, SnowConvert AI commentera tout le code lié à la création d’index. Snowflake crée automatiquement des micro-partitions pour chaque table, ce qui permet d’accélérer les performances des opérations DML. L’utilisateur n’a pas à se soucier de créer ou de gérer ces micro-partitions.
En règle générale, cela est suffisant pour obtenir de très bonnes performances des requêtes. Cependant, il existe d’autres moyens d’améliorer les performances en créant des clés de clustering de données. La page officielle de Snowflake fournit plus d’informations sur les micro-partitions et le clustering de données.
Exemple de code¶
Code d’entrée (Oracle) :¶
Code généré :¶
Meilleures pratiques¶
Le clustering de données peut constituer un moyen d’accélérer les performances des requêtes sur les tables.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-FDM-0022¶
L’unité de cadre de fenêtre a été modifiée en lignes.
Gravité¶
Faible
Description¶
Cet avertissement est ajouté lorsqu’une unité de cadre de fenêtre non prise en charge a été modifiée en lignes, entraînant des différences de sortie. Un exemple de ceci est l’unité GROUPS, qui n’est pas prise en charge par Snowflake.
Veuillez noter que ce message est également utilisé dans les cas où une unité de cadre de fenêtre est partiellement non prise en charge, ce qui entraîne sa modification, comme l’unité RANGE.
Exemple de code¶
Prenons les données suivantes à titre d’exemple pour expliquer cela.
C_NAME |
C_BIRTH_DAY |
|---|---|
USA |
1 |
USA |
4 |
Pologne |
9 |
Canada |
10 |
USA |
5 |
Canada |
12 |
Costa Rica |
3 |
Pologne |
4 |
USA |
2 |
Costa Rica |
7 |
Costa Rica |
10 |
Oracle :¶
Code¶
SELECT
C_NAME,
SUM(C_BIRTH_DAY)
OVER (ORDER BY C_BIRTH_DAY
RANGE BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) AS MAX1
FROM WINDOW_TABLE;
Résultat¶
C_NAME |
MAX1 |
|---|---|
USA |
- |
USA |
1 |
Costa Rica |
3 |
USA |
6 |
Pologne |
6 |
USA |
14 |
Costa Rica |
19 |
Pologne |
26 |
Canada |
35 |
Costa Rica |
35 |
Canada |
55 |
Snowflake :¶
Code¶
Résultat¶
C_NAME |
MAX1 |
|---|---|
USA |
- |
USA |
1 |
Costa Rica |
3 |
USA |
6 |
Pologne |
10 |
USA |
14 |
Costa Rica |
19 |
Pologne |
26 |
Canada |
35 |
Costa Rica |
45 |
Canada |
55 |
Meilleures pratiques¶
Assurez un ordre déterministe pour les lignes afin de garantir des sorties déterministes lors de l’exécution dans Snowflake.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-FDM-0023¶
Une table temporaire globale est en cours de référence.
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-FDM-0024¶
La fonctionnalité n’est actuellement pas prise en charge par l’Exécution de scripts Snowflake.
Note
Ce FDM est obsolète. Veuillez vous référer à la documentation SSC-EWI-0058.
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-FDM-0025¶
Unexpected end of statement
Description¶
This message is reported when SnowConvert AI encounters an unexpected end of statement during conversion. This typically occurs when the parser reaches the end of the source code while still expecting additional tokens to complete a statement. The EWI includes the line number of the original source code where the issue was detected.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Check the specified line in the original source code for missing semicolons or incomplete statements.
Ensure all statements are properly terminated.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-FDM-0026¶
Type non pris en charge par Snowflake
Note
Ce FDM est obsolète. Veuillez vous référer à la documentation SSC-EWI-0028.
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-FDM-0027¶
Removed next statement, not applicable in Snowflake.
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Ce message apparaît lorsqu’une instruction spécifique n’est pas applicable dans Snowflake. Cela signifie qu’il n’existe pas d’équivalent Snowflake pour cette instruction et qu’elle n’est plus nécessaire. Pour cette raison, elle est supprimée du code source. Cependant, SnowConvert AI conserve l’instruction d’origine dans le commentaire de fin.
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-FDM-0028¶
Non pris en charge.
Note
Ce FDM est obsolète. Veuillez vous référer à la documentation SSC-EWI-0021.
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¶
If this error happens, it is because there is no Snowflake equivalent for the node that is being converted.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-FDM-0029¶
La fonction définie par l’utilisateur a été transformée en procédure Snowflake.
Avertissement
Cet EWI est obsolète. Veuillez vous référer à la documentation SSC-EWI-0068.
Gravité¶
Faible
Description¶
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¶
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-FDM-0030¶
Remplacement des caractères non valides pour le nouvel identificateur
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-FDM-0031¶
Paramètres des tables dynamiques requis définis par défaut
Description¶
Les vues matérialisées (et les index de jointure dans le cas de Teradata) sont migrées vers des tables dynamiques dans Snowflake. Les tables dynamiques nécessitent de définir deux paramètres : TARGET_LAG et WAREHOUSE.
Si ces paramètres ne sont pas définis dans les options de configuration, ils sont définis par défaut lors de la conversion.
Découvrez-en plus sur les paramètres des tables dynamiques requis ici.
Exemple de code¶
Code d’entrée (Oracle) :¶
Code généré :¶
Meilleures pratiques¶
Configurez les paramètres des tables dynamiques requis en fonction de vos besoins.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-FDM-0032¶
Le paramètre n’est pas une valeur littérale. La transformation n’a pas pu être entièrement appliquée.
Description¶
Pour les transformations multiples, SnowConvert AI exige parfois que le contenu d’un paramètre soit validé, ce qui n’est possible que si ce paramètre est une valeur littérale.
Ce message est généré pour avertir l’utilisateur que SnowConvert AI n’a pas pu récupérer la valeur du paramètre, car elle a été transmise par référence, ce qui a entraîné l’interruption de la transformation de la fonction ou de l’instruction.
Exemple de code¶
Code d’entrée (Redshift) :¶
Code généré :¶
Meilleures pratiques¶
Essayez de fournir le paramètre spécifié sous forme de valeur littérale.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-FDM-0033¶
La clause d’exemple se comporte différemment dans Snowflake.
Description¶
This message is generated to showcase the functional difference while sampling rows in Snowflake. The differences are related to the quantity of rows retrieved. When in Teradata there is the same quantity of rows in the non-deterministic output, it may change in Snowflake and return a few rows more or less. This is because a probability related topic and it is expected to behaves like that in Snowflake.
If there is a requirement of retrieving the same values and the same quantity, a deterministic output, it is recommended to use a seed in the Snowflake query.
Exemple de code¶
Code d’entrée (Teradata) :¶
Code généré :¶
Meilleures pratiques¶
Essayez d’utiliser la partie graine de la requête lorsqu’une sortie déterministe est requise.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-FDM-0034¶
Structure convertie en VARIANT. Certaines de ses utilisations peuvent présenter des différences fonctionnelles.
Description¶
Snowflake ne prend pas en charge le type de données STRUCT de façon native. SnowConvert AI convertit automatiquement STRUCT en VARIANT. Lorsqu’elles seront utilisées dans des instructions INSERT, les données STRUCT seront traitées à l’aide de OBJECT_CONSTRUCT. Notez que cette conversion peut introduire des différences fonctionnelles dans certains cas d’utilisation.
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-FDM-0035¶
La fonction INFER_SCHEMA requiert un chemin de fichier sans caractères de remplacement pour générer le modèle de table. Remplacez l’espace réservé FILE_PATH par celui-ci.
Description¶
La fonction INFER_SCHEMA est utilisée dans Snowflake pour générer la définition des colonnes d’une table en fonction de la structure d’un fichier. Elle nécessite un paramètre LOCATION qui spécifie le chemin d’accès à un fichier ou à un dossier qui sera utilisé pour créer les colonnes de la table. Cependant, ce chemin d’accès ne prend pas en charge les expressions régulières, ce qui signifie que le caractère générique * n’est pas pris en charge.
Lorsque la table ne contient pas de colonnes, SnowConvert AI vérifiera tous les URIS pour en trouver un qui n’utilise pas de caractères génériques et l’utiliser dans la fonction INFER_SCHEMA. Lorsqu’aucun URI ne répond à de tels critères, ce FDM et un espace réservé FILE_PATH seront générés. L’espace réservé doit être remplacé par le chemin de l’un des fichiers référencés par la table externe pour générer les colonnes de la table.
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-FDM-0036¶
Le format numérique/date transformé peut avoir un comportement différent dans Snowflake.
Description¶
Les formats numériques transformés vers Snowflake utilisent des formats de position fixes. Le format transformé peut échouer et générer une sortie différente lorsqu’il y a plus de chiffres dans la partie entière du nombre qu’il n’y a de positions de chiffres dans le format. Tous les chiffres sont imprimés sous la forme # pour indiquer un dépassement.
Note
For SQL Server migrations: If you are converting SQL Server code that uses custom single-character date format specifiers (for example, %y, %M, %d, %H, %h, %m, %s) or advanced numeric format specifiers (for example, P, N, %), consider enabling the --enableFormatSpecifiersPreview preview flag. This flag enables access to new Snowflake format specifiers that provide more accurate translations of these formats. See Preview Features Settings for more details.
Note: This requires requesting preview access in your Snowflake account through this form.
Exemple de code¶
Code d’entrée :¶
SQL Server¶
Code généré :¶
Snowflake¶
Résultat¶
Meilleures pratiques¶
Si le chiffre numérique ne correspond pas au format, veuillez mettre à jour le format en ajoutant des chiffres supplémentaires en fonction des valeurs possibles des données d’entrée.
SSC-FDM-0037¶
La fonction de statistiques n’est pas nécessaire dans Snowflake.
Description¶
Les statistiques DROP, COLLECT ou HELP ne sont pas nécessaires dans Snowflake. Snowflake collecte déjà des statistiques utilisées pour l’optimisation automatique des requêtes.
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-FDM-0038¶
Le micro-partitionnement est automatiquement effectué sur toutes les tables Snowflake.
Description¶
Ce message est ajouté à l’instruction CREATE TABLE lorsqu’une clause PARTITION BY est présente. La clause PARTITION BY, qui contrôle le partitionnement des tables dans certaines bases de données, n’est pas prise en charge dans Snowflake.
Dans Snowflake, toutes les tables sont automatiquement divisées en micro-partitions, c’est-à-dire en des unités de stockage contiguës allant de 50 MB à 500 MB de données non compressées. Cette architecture permet un nettoyage très granulaire des grandes tables, qui peuvent consister en des millions de micro-partitions.
Snowflake stocke automatiquement les métadonnées pour chaque micro-partition, y compris :
La plage de valeurs pour chaque colonne dans la micro-partition.
Le nombre de valeurs distinctes.
Les propriétés supplémentaires utilisées à la fois pour l’optimisation et le traitement efficace des requêtes.
Les tables sont partitionnées de manière transparente en fonction de l’ordre des données à mesure qu’elles sont insérées ou chargées. Pour plus de détails, consultez les Avantages du micro-partitionnement.
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-FDM-0039¶
SQLWARNING may not be captured as an exception in Snowflake.
Description¶
In source databases such as Teradata, SQLWARNING can be caught in exception handlers. Snowflake’s exception handling may not capture SQLWARNING in the same way. When a handler is configured to catch SQLWARNING, SnowConvert AI translates it, but the behavior in Snowflake may differ.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Review exception handling logic that catches SQLWARNING; the handler may not be invoked in Snowflake for the same conditions.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-FDM-0040¶
REGEXP_SUBSTR / REGEXP_INSTR function may fail if regex argument is not POSIX
Description¶
When translating regex-based functions (such as REGEXP_SUBSTR, REGEXP_INSTR) from source dialects to Snowflake, the regex argument must be valid POSIX syntax. Source dialects may support extended regex features that Snowflake does not. If the regex pattern uses non-POSIX syntax, the function may fail at runtime or produce different results.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Ensure regex patterns use POSIX-compliant syntax.
Test regex functions with sample data after conversion.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-FDM-0041¶
Default parameters were reordered to the end of the parameter list.
Description¶
Snowflake requires all parameters with default values to appear after all non-default parameters. When SnowConvert AI detects a procedure whose default parameters are not at the end of the parameter list, it automatically reorders them. Code not provided to SnowConvert AI that uses positional arguments may need to be updated to match the new parameter order.
Note
This FDM replaces the deprecated SSC-EWI-0002, which previously only warned about the issue without performing the reorder.
Exemple de code¶
Input Code (SQL Server):¶
Generated Code (SQL Server):¶
Code d’entrée (Oracle) :¶
Generated Code (Oracle):¶
Positional Call Site Conversion¶
When callers use positional arguments and the parameters have been reordered, SnowConvert AI automatically converts them to named arguments:
Meilleures pratiques¶
Review all callers of the affected procedure. If positional arguments are used, update them to match the new parameter order or convert them to named arguments.
Consider using named arguments (e.g.,
param1 => value) instead of positional arguments to avoid issues with parameter ordering.Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.