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 (https://help.sap.com/docs/SAP_IQ/a898e08b84f21015969fa437e89860c8/a7749cf084f21015b73b899c1520fb06.html#parameters) 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 (https://help.sap.com/docs/SAP_IQ/a898e08b84f21015969fa437e89860c8/a7749cf084f21015b73b899c1520fb06.html) 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

Language: English