SnowConvert AI - Problemas do Sybase IQ

Nota

Escopo de conversão

O SnowConvert AI para Sybase IQ atualmente é compatível com avaliação e tradução de TABLES e VIEWS. Embora o SnowConvert AI possa reconhecer outros tipos de instruções, elas não são totalmente compatíveis.

Esta página fornece uma referência abrangente de como o SnowConvert AI traduz elementos de gramática do Sybase IQ para equivalentes do Snowflake. Nesta referência de tradução, você encontrará exemplos de código, resultados de equivalência funcional, principais diferenças, recomendações, problemas conhecidos e descrições de cada transformação.

SSC-EWI-SY0001

Valor padrão incompatível no Snowflake.

Gravidade

High

Descrição

O Snowflake não é compatível com o uso dos seguintes valores padrão.

  • CURRENT REMOVE USER

  • LAST USER

  • CURRENT PUBLISHER

Exemplos de código

Código de entrada:
Sybase
 create table t1
(
  col1 varchar default current remote user,
  col2 varchar default last user,
  col3 varchar default current publisher
);
Copy
Código gerado:
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

Práticas recomendadas

SSC-EWI-SY0002

Sintaxe de tabela remota incompatível no Snowflake.

Gravidade

High

Descrição

A sintaxe de tabela remota do Sybase IQ não é compatível com o Snowflake.

Exemplos de código

Código de entrada:
Sybase
 CREATE TABLE remote_data(
    remote_id INT
) 
AT 'remote_server;remote_db;owner;remote_object';
Copy
Código gerado:
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

Práticas recomendadas

SSC-EWI-SY0003

Restrição iq exclusiva incompatível no Snowflake.

Gravidade

High

Descrição

A restrição IQ UNIQUE especifica uma estimativa do número de valores distintos em uma coluna. O Snowflake não contém nenhuma restrição para emular esta funcionalidade.

Exemplos de código

Código de entrada:
Sybase
 CREATE TABLE T1 (
  DATA VARCHAR IQ UNIQUE(10)
)
;
Copy
Código gerado:
Snowflake
 CREATE OR REPLACE TABLE T1 (
  DATA VARCHAR 
  !!!RESOLVE EWI!!! /*** SSC-EWI-SY0003 - UNSUPPORTED IQ UNIQUE CONSTRAINT ***/!!!
              IQ UNIQUE(10)
);
Copy

Práticas recomendadas

SSC-EWI-SY0004

A função de tabela de sintaxe incompatível não pode receber uma consulta como parâmetro.

Gravidade

High

Descrição

O Snowflake não é compatível com a passagem de RESULTSET como parâmetro em uma chamada de função de valor de tabela.

Exemplos de código

Código de entrada:
Sybase
 SELECT 
*
FROM 
MyProcedure(TABLE (SELECT * FROM TABLE1));
Copy
Código gerado:
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

Práticas recomendadas

SSC-EWI-SY0005

A função de tabela de sintaxe incompatível não pode ser usada com a expressão

Gravidade

High

Descrição

O Snowflake é incompatível com a especificação de janelas em uma chamada de função de valor de tabela.

Exemplos de código

Código de entrada:
Sybase
 SELECT * FROM 
MyProcedure(
TABLE (SELECT * FROM TABLE1) 
OVER (PARTITION BY Col1 ORDER BY Col2 DESC));
Copy
Código gerado:
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

Práticas recomendadas

SSC-EWI-SY0006

A cadeia de caracteres aberta não é compatível com o Snowflake.

Gravidade

High

Descrição

O Snowflake não é compatível com a funcionalidade OPENSTRING.

Exemplos de código

Código de entrada:
Sybase
 SELECT * FROM 
OPENSTRING (FILE '/path/to/file.txt') 
WITH (Col1 INT, Col2 VARCHAR(20)) AS OS;
Copy
Código gerado:
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

Práticas recomendadas

SSC-EWI-SY0007

Tabela derivada DML incompatível com o Snowflake.

Gravidade

High

Descrição

No Python, durante a execução, a instrução DML especificada na tabela derivada de dml é executada primeiro, e as linhas afetadas por esse DML se materializam em uma tabela temporária cujas colunas são descritas pela cláusula REFERENCING. A tabela temporária representa o conjunto de resultados da tabela derivada de dml. O Snowflake é incompatível com esse comportamento.

Exemplos de código

Código de entrada:
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
Código gerado:
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

Práticas recomendadas

SSC-EWI-SY0008

Contém cláusula incompatível com o Snowflake.

Gravidade

High

Descrição

No Sybase, a cláusula CONTAINS após um nome de tabela para filtrar a tabela e retornar somente aquelas linhas que correspondem à consulta de texto completo especificada com contains-query. Cada linha correspondente da tabela é retornada junto com uma coluna de pontuação que pode ser referida usando score-correlation-name. O Snowflake é incompatível com esse comportamento.

Exemplos de código

Código de entrada:
Sybase
 SELECT * FROM TABLE1 CONTAINS (TextColumn, 'search term') AS Score;
Copy
Código gerado:
Snowflake
 SELECT
  *
FROM
  TABLE1
         !!!RESOLVE EWI!!! /*** SSC-EWI-SY0008 - CONTAINS CLAUSE NOT SUPPORTED IN SNOWFLAKE ***/!!!
         CONTAINS(TextColumn,'search term') AS Score;
Copy

Práticas recomendadas

SSC-EWI-SY0009

Junção de chaves incompatível com o Snowflake.

Gravidade

High

Descrição

O Snowflake é incompatível com KEY JOIN. Quando ON CLAUSE é especificada, a palavra-chave KEY é removida e tratada como INNER JOIN.

Exemplos de código

Código de entrada:
Sybase
 SELECT * FROM TABLE1 KEY JOIN Table2 ON Table1.ID = Table2.ID;
SELECT * FROM TABLE1 KEY JOIN Table2;
Copy
Código gerado:
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

Práticas recomendadas