SnowConvert AI - Problèmes Sybase IQ

Note

Portée de la conversion

SnowConvert AI pour Sybase IQ prend actuellement en charge l’évaluation et la traduction pour les TABLES et les VIEWS. Bien que SnowConvert AI puisse reconnaître d’autres types d’instructions, ces derniers ne sont pas complètement pris en charge.

Cette page fournit une référence complète sur la manière dont SnowConvert AI traduit les éléments de grammaire Sybase IQ en équivalents Snowflake. Dans cette référence de traduction, vous trouverez des exemples de code, des résultats d’équivalence fonctionnelle, des différences clés, des recommandations, des problèmes connus et des descriptions de chaque transformation.

SSC-EWI-SY0001

Valeur par défaut non prise en charge dans Snowflake.

Gravité

Élevé

Description

Snowflake ne prend pas en charge l’utilisation des valeurs par défaut suivantes.

  • CURRENT REMOVE USER

  • LAST USER

  • CURRENT PUBLISHER

Exemples de code

Code d’entrée :
Sybase
 create table t1
(
  col1 varchar default current remote user,
  col2 varchar default last user,
  col3 varchar default current publisher
);
Copy
Code généré :
Snowflake
 CREATE OR REPLACE TABLE t1 (
  col1 VARCHAR default
                       !!!RESOLVE EWI!!! /*** SSC-EWI-SY0001 - UNSUPPORTED DEFAULT VALUE CURRENT REMOTE USER IN SNOWFLAKE ***/!!!
                       current remote user,
  col2 VARCHAR default
                       !!!RESOLVE EWI!!! /*** SSC-EWI-SY0001 - UNSUPPORTED DEFAULT VALUE LAST USER IN SNOWFLAKE ***/!!!
                       last user,
  col3 VARCHAR default
                       !!!RESOLVE EWI!!! /*** SSC-EWI-SY0001 - UNSUPPORTED DEFAULT VALUE CURRENT PUBLISHER IN SNOWFLAKE ***/!!!
                       current publisher
)
;
Copy

Meilleures pratiques

SSC-EWI-SY0002

Syntaxe de tables distantes non prise en charge dans Snowflake.

Gravité

Élevé

Description

La syntaxe de tables distantes Sybase IQ n’est pas prise en charge dans Snowflake.

Exemples de code

Code d’entrée :
Sybase
 CREATE TABLE remote_data(
    remote_id INT
) 
AT 'remote_server;remote_db;owner;remote_object';
Copy
Code généré :
Snowflake
 CREATE OR REPLACE TABLE remote_data (
    remote_id INT
)
    !!!RESOLVE EWI!!! /*** SSC-EWI-SY0002 - UNSUPPORTED REMOTE TABLE SYNTAX ***/!!!
AT 'remote_server;remote_db;owner;remote_object'
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "sybase",  "convertedOn": "07/02/2025",  "domain": "no-domain-provided" }}'
;
Copy

Meilleures pratiques

SSC-EWI-SY0003

Contrainte IQ unique non prise en charge dans Snowflake.

Gravité

Élevé

Description

La contrainte IQ UNIQUE spécifie une estimation du nombre de valeurs distinctes dans une colonne. Snowflake ne contient aucune contrainte pour émuler cette fonctionnalité.

Exemples de code

Code d’entrée :
Sybase
 CREATE TABLE T1 (
  DATA VARCHAR IQ UNIQUE(10)
)
;
Copy
Code généré :
Snowflake
 CREATE OR REPLACE TABLE T1 (
  DATA VARCHAR 
  !!!RESOLVE EWI!!! /*** SSC-EWI-SY0003 - UNSUPPORTED IQ UNIQUE CONSTRAINT ***/!!!
              IQ UNIQUE(10)
);
Copy

Meilleures pratiques

SSC-EWI-SY0004

La fonction Syntax Table non prise en charge ne peut pas recevoir une requête en tant que paramètre.

Gravité

Élevé

Description

Snowflake ne prend pas en charge le passage de RESULTSET en tant que paramètre dans un appel de fonction de valeur de table.

Exemples de code

Code d’entrée :
Sybase
 SELECT 
*
FROM 
MyProcedure(TABLE (SELECT * FROM TABLE1));
Copy
Code généré :
Snowflake
 SELECT
*
FROM
TABLE(MyProcedure(
!!!RESOLVE EWI!!! /*** SSC-EWI-SY0004 - UNSUPPORTED SYNTAX TABLE FUNCTION CAN'T RECEIVE A QUERY AS PARAMETER ***/!!!
TABLE(SELECT * FROM TABLE1)));
Copy

Meilleures pratiques

SSC-EWI-SY0005

La fonction Syntax Table non prise en charge ne peut pas être utilisée avec une expression supérieure.

Gravité

Élevé

Description

Snowflake ne prend pas en charge la spécification des fenêtres sur un appel de fonction de valeur de table.

Exemples de code

Code d’entrée :
Sybase
 SELECT * FROM 
MyProcedure(
TABLE (SELECT * FROM TABLE1) 
OVER (PARTITION BY Col1 ORDER BY Col2 DESC));
Copy
Code généré :
Snowflake
         SELECT
          *
        FROM
          TABLE(MyProcedure(
          !!!RESOLVE EWI!!! /*** SSC-EWI-SY0004 - UNSUPPORTED SYNTAX TABLE FUNCTION CAN'T RECEIVE A QUERY AS PARAMETER ***/!!!
          TABLE(
            SELECT
              *
            FROM
              TABLE1
          )
          !!!RESOLVE EWI!!! /*** SSC-EWI-SY0005 - UNSUPPORTED SYNTAX TABLE FUNCTION CAN'T BE USED WITH OVER EXPRESSION ***/!!!
          OVER (
          PARTITION BY
            Col1
          ORDER BY Col2 DESC)));
Copy

Meilleures pratiques

SSC-EWI-SY0006

Open String n’est pas pris en charge dans Snowflake.

Gravité

Élevé

Description

Snowflake ne prend pas en charge la fonctionnalité OPENSTRING.

Exemples de code

Code d’entrée :
Sybase
 SELECT * FROM 
OPENSTRING (FILE '/path/to/file.txt') 
WITH (Col1 INT, Col2 VARCHAR(20)) AS OS;
Copy
Code généré :
Snowflake
 SELECT
*
FROM
!!!RESOLVE EWI!!! /*** SSC-EWI-SY0006 - OPEN STRING IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
OPENSTRING (FILE '/path/to/file.txt')
WITH (Col1 INT, Col2 VARCHAR(20)) AS OS;
Copy

Meilleures pratiques

SSC-EWI-SY0007

Table dérivée DML non prise en charge dans Snowflake.

Gravité

Élevé

Description

Dans Synbase, lors de l’exécution, l’instruction DML spécifiée dans la table dérivée dml est exécutée en premier, et les lignes affectées par ce DML se matérialisent dans une table temporaire dont les colonnes sont décrites par la clause REFERENCING. La table temporaire représente le jeu de résultats de la table dérivée dml. Snowflake ne prend pas en charge ce comportement.

Exemples de code

Code d’entrée :
Sybase
 SELECT * FROM (INSERT INTO TABLE1 (Col1, Col2) VALUES (1, 'test')) REFERENCING (FINAL AS F);
SELECT * FROM (DELETE FROM TABLE1) REFERENCING (FINAL AS F);
SELECT * FROM (UPDATE TABLE1 SET A = 1) REFERENCING (FINAL AS F);
Copy
Code généré :
Snowflake
 SELECT
  *
FROM
  !!!RESOLVE EWI!!! /*** SSC-EWI-SY0007 - DML DERIVED TABLE NOT SUPPORTED IN SNOWFLAKE ***/!!!
  (
    INSERT INTO TABLE1 (Col1, Col2) VALUES (1, 'test')
  )
  REFERENCING
  (FINAL AS F);

SELECT
  *
FROM
  !!!RESOLVE EWI!!! /*** SSC-EWI-SY0007 - DML DERIVED TABLE NOT SUPPORTED IN SNOWFLAKE ***/!!!
  (
    DELETE FROM TABLE1
  )
  REFERENCING
  (FINAL AS F);

SELECT
  *
FROM
  !!!RESOLVE EWI!!! /*** SSC-EWI-SY0007 - DML DERIVED TABLE NOT SUPPORTED IN SNOWFLAKE ***/!!!
  (
    UPDATE TABLE1
      SET
        A = 1
  )
  REFERENCING
  (FINAL AS F);
Copy

Meilleures pratiques

SSC-EWI-SY0008

Clause Contains non prise en charge dans Snowflake.

Gravité

Élevé

Description

Dans Sybase, la clause CONTAINS suit un nom de table pour filtrer la table et renvoyer uniquement les lignes correspondant à la requête en texte intégral spécifiée avec contains-query. Chaque ligne correspondante de la table est renvoyée avec une colonne de score à laquelle il est possible de faire référence à l’aide de score-correlation-name. Snowflake ne prend pas en charge ce comportement.

Exemples de code

Code d’entrée :
Sybase
 SELECT * FROM TABLE1 CONTAINS (TextColumn, 'search term') AS Score;
Copy
Code généré :
Snowflake
 SELECT
  *
FROM
  TABLE1
         !!!RESOLVE EWI!!! /*** SSC-EWI-SY0008 - CONTAINS CLAUSE NOT SUPPORTED IN SNOWFLAKE ***/!!!
         CONTAINS(TextColumn,'search term') AS Score;
Copy

Meilleures pratiques

SSC-EWI-SY0009

Key Join n’est pas pris en charge dans Snowflake.

Gravité

Élevé

Description

Snowflake ne prend pas en charge KEY JOIN. Lorsque la CLAUSE ON est spécifiée, le mot-clé KEY est supprimé et traité comme une JOIN INNER.

Exemples de code

Code d’entrée :
Sybase
 SELECT * FROM TABLE1 KEY JOIN Table2 ON Table1.ID = Table2.ID;
SELECT * FROM TABLE1 KEY JOIN Table2;
Copy
Code généré :
Snowflake
   SELECT
    *
  FROM
    TABLE1
    JOIN
      Table2
      ON Table1.ID = Table2.ID;
  
  SELECT
    *
  FROM
    TABLE1
    !!!RESOLVE EWI!!! /*** SSC-EWI-SY0009 - KEY JOIN NOT SUPPORTED IN SNOWFLAKE ***/!!!
    KEY JOIN
      Table2;
Copy

Meilleures pratiques