SnowConvert AI - Problemas do RedShift¶
SSC-EWI-RS0002¶
A definição do “parâmetro de configuração” não é compatível com o Snowflake.
Gravidade¶
Medium
Descrição¶
The SET configuration parameter clause in Redshift procedures is not supported in Snowflake. Snowflake uses ALTER SESSION SET or session-level parameters instead. For more information, refer to CREATE PROCEDURE documentation.
Exemplo de código¶
Código de entrada:¶
Redshift¶
Código gerado:¶
Snowflake¶
Práticas recomendadas¶
Use ALTER SESSION SET: Snowflake provides ALTER SESSION SET to configure session-level parameters. Review whether the Redshift configuration parameter has an equivalent Snowflake session parameter.
Remove if unnecessary: Some Redshift configuration parameters (e.g.,
enable_numeric_rounding) have no Snowflake equivalent and may be safely removed if Snowflake’s default behavior meets your requirements.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-RS0003¶
A exibição sem vinculação de esquema não pode ser removida devido à ausência de referências.
Nota
This issue is deprecated and no longer generated by SnowConvert AI since version 2.2.6
Gravidade¶
Medium
Descrição¶
A documentação do RedShift para CREATE VIEW inclui uma cláusula opcional que especifica que a exibição específica não está vinculada aos objetos do banco de dados, tais como tabelas ou funções, nem aos objetos que está referenciando. A documentação também esclarece que, nos casos em que esta cláusula é utilizada, os objetos referenciados devem ser qualificados com um nome de esquema. Esta cláusula permite criar uma exibição e referenciar objetos que talvez ainda não existam. Sua existência será verificada uma vez que a exibição seja consultada, mas não em sua definição.
Entretanto, não há comando equivalente nem solução alternativa óbvia para implementar essa funcionalidade no Snowflake. Além disso, a documentação do Snowflake sugere que as exibições estão vinculadas a um esquema específico, assim como os objetos referenciados na exibição.
Se as referências vinculadas à exibição estiverem presentes no código de entrada, a instrução será removida sem problemas. Entretanto, se as referências necessárias estiverem ausentes, uma mensagem de aviso será adicionada para informar ao usuário que a instrução não pode ser removida devido às referências ausentes.
O SnowConvert AI executa análise somente no código de entrada e não leva em conta objetos já implantados no Snowflake. Portanto, a saída pode ter alguns problemas ao apontar para referências ausentes. Se as referências já estiverem presentes no banco de dados do Snowflake, o usuário poderá remover a instrução com segurança sem problemas.
Exemplos de código¶
Código de entrada:¶
Redshift¶
Código gerado:¶
Snowflake¶
Práticas recomendadas¶
Para resolver este problema, é sugerida a adição das referências ausentes ao código de entrada. Se o objeto já estiver implementado no banco de dados do Snowflake, a instrução poderá ser removida sem problemas.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-RS0004¶
Tipo de dados HLLSKETCH incompatível com o Snowflake.
Gravidade¶
High
Descrição¶
Este problema de conversão é adicionado porque o tipo de dados HLLSKETCH não é compatível com o Snowflake.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Verifique todas as funções agregadas fornecidas pelo Snowflake para estimar a cardinalidade usando HyperLogLog.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-RS0005¶
Pending SnowConvert AI translation for column aliases in the PIVOT/UNPIVOT IN clause.
Gravidade¶
High
Descrição¶
Pending SnowConvert AI translation for column aliases in the PIVOT/UNPIVOT IN clause. Snowflake now supports the AS clause for specifying column aliases in PIVOT and UNPIVOT operations (added October 2025). This is a SnowConvert AI limitation, not a Snowflake platform limitation.
Exemplo de código¶
Código de entrada:¶
Redshift¶
Código gerado:¶
Snowflake¶
Práticas recomendadas¶
Use native Snowflake support: Snowflake now supports the
ASclause for column aliases inPIVOT/UNPIVOT INclauses. Remove the EWI marker and use the aliases directly:
Further reading: Snowflake UNPIVOT, Snowflake PIVOT
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-RS0006¶
The behavior of the SUBSTRING function on binary data differs between Redshift and Snowflake.
Gravidade¶
Medium
Descrição¶
The behavior of the SUBSTRING function on binary data differs between Redshift and Snowflake. In Redshift, SUBSTRING on VARBYTE operates on raw bytes. In Snowflake, SUBSTRING on BINARY operates on hex-encoded character pairs, so the same positional arguments may return different results.
Exemplo de código¶
Código de entrada:¶
Redshift¶
Código gerado:¶
Snowflake¶
Práticas recomendadas¶
Verify binary output: Compare
SUBSTRINGresults on binary columns between Redshift and Snowflake to confirm correctness after migration.Adjust offsets: Because Snowflake’s
BINARYtype uses hex encoding, you may need to multiply position and length arguments by 2 to achieve equivalent byte-level extraction.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-RS0007¶
O literal de data não é compatível com o Snowflake.
Gravidade¶
High
Descrição¶
Some DATE, TIME, or TIMESTAMP literal formats used in Redshift (e.g., '2000-Jan-31', 'Jan-31-2000') are not recognized by Snowflake. These literals must be rewritten to a supported Snowflake date format or converted using TO_DATE with an explicit format string.
Exemplo de código¶
Código de entrada:¶
Redshift¶
Código gerado:¶
Snowflake¶
Práticas recomendadas¶
Use ISO 8601 format: Rewrite date literals to
'YYYY-MM-DD'format, which is universally supported in Snowflake.Use TO_DATE with format string: If the original format must be preserved, use
TO_DATE('Jan-31-2000', 'MON-DD-YYYY')to explicitly parse the date.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-RS0008¶
Delete statement cannot be used on dynamic tables in Snowflake.
Gravidade¶
High
Descrição¶
In Redshift, you can apply the DELETE statement to materialized views used for streaming ingestion. In Snowflake, materialized views are transformed into dynamic tables, and the DELETE statement cannot be used on dynamic tables.
Exemplo de código¶
Código de entrada:¶
Redshift¶
Código gerado:¶
Snowflake¶
Práticas recomendadas¶
Replace the dynamic table definition: Because dynamic tables cannot be directly deleted from, you can achieve the same result by altering the dynamic table’s underlying query to exclude the rows you want to remove.
Use a regular table: If row-level DML (INSERT, UPDATE, DELETE) is required, consider using a regular table with a scheduled task instead of a dynamic table.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-RS0009¶
Source table semantic information not found in the code provided to SnowConvert AI.
Gravidade¶
Low
Descrição¶
Snowflake does not support the MERGE ... REMOVE DUPLICATES clause. SnowConvert AI generates a workaround that includes an INSERT WHEN NOT MATCHED clause, which requires knowledge of the source table’s columns. If the source table definition was not included in the code provided to SnowConvert AI, the column list cannot be generated and must be added manually.
Exemplo de código¶
Código de entrada:¶
Redshift¶
Código gerado:¶
Snowflake¶
Práticas recomendadas¶
Include all source DDL: Provide the source table’s
CREATE TABLEstatement in the input code so SnowConvert AI can resolve columns automatically.Add columns manually: If the source table definition is unavailable, fill in the
INSERT ... VALUES ()clause with the correct column list from your Redshift catalog.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-RS0010¶
Top-level procedure call with out parameters is not supported in Snowflake.
Gravidade¶
Low
Descrição¶
Redshift allows top-level CALL statements to invoke procedures with OUT parameters without declaring a variable to receive the output. Snowflake requires that OUT parameters be assigned to a variable, which is only possible inside a stored procedure or anonymous block.
Exemplo de código¶
Código de entrada:¶
Redshift¶
Código gerado:¶
Snowflake¶
Práticas recomendadas¶
Mova a chamada em um bloco anônimo e declare uma variável a ser passada como parâmetro de saída.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com