SnowConvert: Sybase IQ Issues¶

Note

Conversion Scope

SnowConvert for Sybase IQ currently supports assessment and translation for TABLES and VIEWS. Although SnowConvert can recognize other types of statements, they are not fully supported.

This page provides a comprehensive reference for how SnowConvert translates Sybase IQ grammar elements to Snowflake equivalents. In this translation reference, you will find code examples, functional equivalence results, key differences, recommendations, known issues, and descriptions of each transformation.

SSC-EWI-SY0001¶

Unsupported default value in Snowflake.

Severity¶

High

Description¶

Snowflake does not support the use of the following default values.

  • CURRENT REMOVE USER

  • LAST USER

  • CURRENT PUBLISHER

Code Examples¶

Input Code:¶
Sybase¶
 create table t1
(
  col1 varchar default current remote user,
  col2 varchar default last user,
  col3 varchar default current publisher
);
Copy
Generated Code:¶
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

Best Practices¶

SSC-EWI-SY0002¶

Unsupported remote table syntax in Snowflake.

Severity¶

High

Description¶

Sybase IQ remote table syntax is not supported in Snowflake.

Code Examples¶

Input Code:¶
Sybase¶
 CREATE TABLE remote_data(
    remote_id INT
) 
AT 'remote_server;remote_db;owner;remote_object';
Copy
Generated Code:¶
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

Best Practices¶

SSC-EWI-SY0003¶

Unsupported iq unique constraint in Snowflake.

Severity¶

High

Description¶

The IQ UNIQUE constraint specifies an estimate of the number of distinct values in a column. Snowflake does not contain any constraint to emulate this functionality.

Code Examples¶

Input Code:¶
Sybase¶
 CREATE TABLE T1 (
  DATA VARCHAR IQ UNIQUE(10)
)
;
Copy
Generated Code:¶
Snowflake¶
 CREATE OR REPLACE TABLE T1 (
  DATA VARCHAR 
  !!!RESOLVE EWI!!! /*** SSC-EWI-SY0003 - UNSUPPORTED IQ UNIQUE CONSTRAINT ***/!!!
              IQ UNIQUE(10)
);
Copy

Best Practices¶

SSC-EWI-SY0004¶

Unsupported Syntax Table function can’t receive a query as a parameter.

Severity¶

High

Description¶

Snowflake does not support passing RESULTSET as parameter in a table-value function call.

Code Examples¶

Input Code:¶
Sybase¶
 SELECT 
*
FROM 
MyProcedure(TABLE (SELECT * FROM TABLE1));
Copy
Generated Code:¶
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

Best Practices¶

SSC-EWI-SY0005¶

Unsupported Syntax Table function can’t be used with over expression

Severity¶

High

Description¶

Snowflake does not support windows specification on a table-value function call.

Code Examples¶

Input Code:¶
Sybase¶
 SELECT * FROM 
MyProcedure(
TABLE (SELECT * FROM TABLE1) 
OVER (PARTITION BY Col1 ORDER BY Col2 DESC));
Copy
Generated Code:¶
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

Best Practices¶

SSC-EWI-SY0006¶

Open string is not supported in Snowflake.

Severity¶

High

Description¶

Snowflake does not support OPENSTRING functionality.

Code Examples¶

Input Code:¶
Sybase¶
 SELECT * FROM 
OPENSTRING (FILE '/path/to/file.txt') 
WITH (Col1 INT, Col2 VARCHAR(20)) AS OS;
Copy
Generated Code:¶
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

Best Practices¶

SSC-EWI-SY0007¶

DML Derived Table not supported in Snowflake.

Severity¶

High

Description¶

In Sybase, during execution, the DML statement specified in the dml-derived table is executed first, and the rows affected by that DML materialize into a temporary table whose columns are described by the REFERENCING clause. The temporary table represents the result set of dml-derived-table. Snowflake does not support this behavior.

Code Examples¶

Input Code:¶
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
Generated Code:¶
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

Best Practices¶

SSC-EWI-SY0008¶

Contains clause not supported in Snowflake.

Severity¶

High

Description¶

In Sybase the CONTAINS clause following a table name to filter the table and return only those rows matching the full text query specified with contains-query. Every matching row of the table is returned together with a score column that can be referred to using score-correlation-name. Snowflake does not support this behavior.

Code Examples¶

Input Code:¶
Sybase¶
 SELECT * FROM TABLE1 CONTAINS (TextColumn, 'search term') AS Score;
Copy
Generated Code:¶
Snowflake¶
 SELECT
  *
FROM
  TABLE1
         !!!RESOLVE EWI!!! /*** SSC-EWI-SY0008 - CONTAINS CLAUSE NOT SUPPORTED IN SNOWFLAKE ***/!!!
         CONTAINS(TextColumn,'search term') AS Score;
Copy

Best Practices¶

SSC-EWI-SY0009¶

Key Join not supported in Snowflake.

Severity¶

High

Description¶

Snowflake does not support KEY JOIN. When the ON CLAUSE is specified, the KEY keyword is removed and treated as an INNER JOIN.

Code Examples¶

Input Code:¶
Sybase¶
 SELECT * FROM TABLE1 KEY JOIN Table2 ON Table1.ID = Table2.ID;
SELECT * FROM TABLE1 KEY JOIN Table2;
Copy
Generated Code:¶
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

Best Practices¶