SnowConvert AI - Problemas gerais¶
SSC-EWI-0001¶
Token não reconhecido na linha do código-fonte.
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Gravidade¶
Crítico
Descrição¶
Este problema ocorre quando há um erro ao analisar o código-fonte que está sendo convertido. Isso significa que há um erro de sintaxe do código-fonte ou uma instrução específica do código ainda não está sendo reconhecida.
Exemplo de código¶
O exemplo a seguir ilustra diferentes cenários de análise de erro em que a sintaxe inválida é colocada na entrada. Observe como a mensagem varia entre cada cenário; esse conteúdo pode ser útil para isolar e corrigir o problema. Para obter mais informações, consulte “Conteúdo da mensagem” abaixo.
Código de entrada: ¶
Código gerado: ¶
Conteúdo da mensagem¶
Cláusula inicial: Especifica a localização inicial (linha, coluna e «texto») do código não reconhecido. O código será transformado em comentário a partir do elemento «texto» para cada elemento não reconhecido até que o analisador localize um possível ponto de recuperação.
Cláusula gramatical esperada: Especifica o tipo de gramática que o analisador estava esperando. Verifique se o código em comentário tem um tipo correspondente da gramática esperada.
Cláusula de último token correspondente (OPTIONAL): Pode aparecer se o código não reconhecido foi parcialmente reconhecido. Isso sinaliza o ponto até o qual o analisador reconheceu os elementos válidos, portanto, verifique os seguintes tokens no código em comentário para ter certeza de que são válidos.
Cláusula de token com falha (OPTIONAL): Só pode estar presente quando uma “cláusula de último token correspondente” também estiver presente. Isto representa em que ponto o analisador determinou que o código é inválido ou não é reconhecido. Certifique-se de que este elemento possa ser colocado nesta localização sintático.
Conteúdo da mensagem obsoleto¶
Nota
Os itens desta lista não estão em uso ativamente e são deixados aqui para fins históricos.
Código de recuperação (DEPRECATED): Destina-se a ser usado como um código de erro, e pode ser fornecido para melhor suporte durante solicitações de atualização do analisador. Ele representa como o analisador acionou seu mecanismo de recuperação.
Práticas recomendadas¶
Verifique se o código-fonte tem a sintaxe correta.
A mensagem pode ser usada para isolar e resolver o problema.
Se for incompatível, a sintaxe poderá ser alterada manualmente para uma sintaxe compatível.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0002¶
Os parâmetros padrão podem precisar ser reordenados
Nota
This EWI is deprecated. SnowConvert AI now automatically reorders default parameters to the end of the parameter list instead of emitting this warning. Please refer to SSC-FDM-0041 for the updated behavior.
Gravidade¶
Medium
Descrição¶
Os parâmetros padrão podem precisar ser reordenados. O Snowflake só é compatível com parâmetros padrão no final das declarações de parâmetros.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0003¶
A coluna do sistema para objeto interno não foi traduzida.
Severidade ¶
Medium
Descrição ¶
Este EWI é gerado quando o SnowConvert AI mapeia um objeto de sistema interno (tabela, exibição) para o objeto equivalente no Snowflake, mas não há nenhum mapa para uma de suas colunas internas.
Exemplo de código ¶
Código de entrada:
Código de saída:
Snowflake¶
SSC-EWI-0005¶
Gravidade¶
Crítico
Descrição¶
This issue appears when an unexpected transformation error occurs while trying to convert the source code and the output code file can not be generated.
Práticas recomendadas¶
Verifique o arquivo de log de erros para obter mais informações sobre o problema#.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0006¶
O formato de data/numérico atual pode ter um comportamento diferente no Snowflake.
Gravidade¶
Medium
Descrição¶
Este erro é adicionado porque o Snowflake não é compatível com formatos de data/numéricos em algumas funções conforme a linguagem de origem.
Nota
For SQL Server migrations: Advanced numeric format specifiers (such as P, N, %) are now translated by default without requiring any flag. If you are converting SQL Server code that uses custom single-character date format specifiers (such as %y, %M, %d, %H, %h, %m, %s), consider enabling the
--enableFormatSpecifiersPreview preview flag. This flag enables access to new Snowflake date/time format specifiers that provide more accurate
translations of these formats. See Preview Features Settings for more details.
Note: You must request preview access in your Snowflake account to use the date/time preview features.
Os elementos de formato a seguir são aqueles que podem se comportar de maneira diferente no Snowflake:
Data/hora do Redshift¶
| Format Element | Description |
|---|---|
| HH | Hour of day (01–12). |
| MS | Millisecond (000–999). |
| US | Microsecond (000000–999999). |
| SSSS, SSSSS | Seconds past midnight (0–86399). |
| Y,YYY | Year (4 or more digits) with comma. |
| YYY | Last 3 digits of year. |
| Y | Last digit of year. |
| IYYY | ISO 8601 week-numbering year(4 or more digits). |
| IYY | Last 3 digits of ISO 8601 week-numbering year. |
| IY | Last 2 digits of ISO 8601 week-numbering year. |
| I | Last digit of ISO 8601 week-numbering year. |
| BC, bc, AD or ad | Era indicator (without periods). |
| B.C., b.c., A.D. or a.d. | Era indicator (with periods). |
| MONTH | Full upper case month name (blank-padded to 9 chars). |
| Month | Full capitalized month name (blank-padded to 9 chars). |
| month | Full lower case month name (blank-padded to 9 chars). |
| DAY | Full upper case day name (blank-padded to 9 chars). |
| Day | Full capitalized day name (blank-padded to 9 chars). |
| day | Full lower case day name (blank-padded to 9 chars). |
| DDD | Day of year (001–366). |
| IDDD | Day of ISO 8601 week-numbering year (001–371; day 1 of the year is Monday of the first ISO week). |
| D | Day of the week, Sunday (1) to Saturday (7). |
| ID | ISO 8601 day of the week, Monday (1) to Sunday (7). |
| W | Week of month (1–5) (the first week starts on the first day of the month). |
| WW | Week number of year (1–53) (the first week starts on the first day of the year). |
| IW | Week number of ISO 8601 week-numbering year (01–53; the first Thursday of the year is in week 1). |
| CC | Century (2 digits) (the twenty-first century starts on 2001-01-01). |
| J | Julian Date. |
| Q | Quarter. |
| RM | Month in upper case Roman numerals (I–XII; I=January). |
| rm | Month in lower case Roman numerals (i–xii; i=January). |
| TZ | Upper case time-zone abbreviation (only supported in to_char). |
| tz | Lower case time-zone abbreviation (only supported in to_char). |
| TZH | Time-zone hours. |
| TZM | Time-zone minutes. |
| OF | Time-zone offset from UTC (only supported in to_char). |
| FM prefix | Fill mode (suppress leading zeroes and padding blanks). |
| TH suffix | Upper case ordinal number suffix. |
| th suffix | Lower case ordinal number suffix. |
| FX prefix | Fixed format global option (see usage notes). |
| TM prefix | Translation mode (use localized day and month names based on lc_time). |
| SP suffix | Spell mode. |
Nota
Para obter mais informações, consulte Formatos de data/hora do PostgreSQL.
Nota
A transformação da função TO_CHAR é compatível com a maioria desses elementos de formato. Para obter uma lista completa dos elementos de formato compatíveis e seus mapeamentos equivalentes, consulte a Especificação de tradução
Formato do BigQuery ¶
Review the BigQuery format elements reference.
Numérico ¶
Padrão |
Descrição |
|---|---|
PR |
valor negativo entre colchetes angulares |
RN |
Numeral romano (entrada entre 1 e 3999) |
TH ou o |
sufixo de número ordinal |
V |
deslocamento do número especificado de dígitos (consulte as observações) |
EEEE |
expoente para notação científica |
Nota
Para obter mais informações, consulte Formatos numéricos do PostgreSQL.
Exemplo de código¶
Código de entrada:¶
PostgreSQL¶
Código gerado:¶
Snowflake¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0007¶
Gravidade¶
Crítico
Descrição¶
This error appears when an error occurs in writing the output file.
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0008¶
A cláusula COLLATE pode ter um comportamento diferente no Snowflake
Gravidade¶
Medium
Descrição¶
This warning is added when the collate clause is used as a column option because it is supported in Snowflake, but behaves differently in the collate specification. To verify which specifiers are supported in Snowflake, see Collate specifications.
Exemplo de código¶
Código de entrada:¶
Código gerado: ¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0009¶
A função Regexp_Substr só é compatível com expressões regulares POSIX.
Gravidade¶
Low
Descrição¶
Atualmente, o Snowflake não é compatível com a expressão regular estendida além das sintaxe de expressão regular POSIX básica.
This EWI is added every time a function call to REGEX_SUBSTR, REGEX_REPLACE, or REGEX_INSTR is transformed to Snowflake to warn the user about possible unsupported regular expressions. Some of the features not supported are lookahead, lookbehind, and non-capturing groups.
Exemplo de código¶
Código de entrada: ¶
Código gerado:¶
Práticas recomendadas¶
Check the regular expression used in each case to determine whether it needs manual intervention. More information about expanded regex support and alternatives in Snowflake can be found here.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0010¶
Gravidade¶
Crítico
Descrição¶
Este erro aparece quando não há uma regra de transformação para uma instrução de procedimento específica.
Práticas recomendadas¶
Verifique se a instrução de procedimento está correta.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0011¶
Gravidade¶
High
Descrição¶
Este erro aparece quando há um fim inesperado da instrução no código-fonte e o erro não pode ser tratado corretamente.
Práticas recomendadas¶
Verifique se o código-fonte está incompleto ou se a instrução que está sendo convertida termina corretamente.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0012¶
Gravidade¶
High
Descrição¶
Este erro aparece quando há um fim inesperado da instrução no código-fonte
Exemplo de código¶
Código de entrada:¶
Código gerado: ¶
Recomendação¶
Verifique se o código-fonte está incompleto ou se a instrução que está sendo convertida termina corretamente.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0013¶
Gravidade¶
Crítico
Descrição¶
Este erro aparece quando uma exceção é gerada ao converter um item do código-fonte.
Recomendação¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0014¶
Gravidade¶
Crítico
Descrição¶
Este erro aparece quando o corpo de uma instrução de procedimento específica não é gerada.
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0015¶
Função múltipla Pivot/Unpivot incompatível.
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Gravidade¶
Medium
Descrição¶
Esta seção descreve os diferentes problemas que poderiam ser acionados pelas cláusulas PIVOT e UNPIVOT. Os cenários incompatíveis são apresentados na tabela a seguir.
PIVOT |
UNPIVOT |
ORACLE |
TERADATA |
|
|---|---|---|---|---|
MULTIPLE COLUMN |
X |
X |
X |
X |
RENAME COLUMN |
X |
X |
X |
X |
MULTIPLE FUNCTION |
X |
X |
X |
|
WITH CLAUSE |
X |
X |
||
XML OUTPUT FORMAT |
X |
X |
||
IN CLAUSE SUBQUERY |
X |
X |
X |
|
IN CLAUSE ANY SEQUENCE |
X |
X |
||
INCLUDE/EXCLUDE NULLS |
X |
X |
X |
MULTIPLE COLUMN¶
As cláusulas PIVOT e UNPIVOT não aceitam várias colunas.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
RENAME COLUMN¶
Renaming columns with aliases is not supported in Snowflake UNPIVOT clauses. SnowConvert will remove aliases for functions or columns to create a valid query and check that this change does not affect the original functionality.
Para PIVOT, o uso de aliases de coluna só será compatível no SnowConvert AI para Teradata se as duas condições a seguir forem verdadeiras: todas as expressões dentro da cláusula IN tendo um alias associado e o SnowConvert AI tendo informações sobre as colunas que serão geradas como resultado, seja fornecendo a definição da tabela ou usando uma subconsulta com uma lista de colunas explícita como entrada para a cláusula.
Exemplo de código¶
Código de entrada:¶
CREATE TABLE star1(
country VARCHAR(20),
state VARCHAR(10),
yr INTEGER,
qtr VARCHAR(3),
sales INTEGER,
cogs INTEGER
);
--SAMPLE 1
SELECT * FROM db1.star1p UNPIVOT (column1 FOR for_column
IN (col1 AS 'as_col1', col2 AS 'as_col2')) Tmp;
--SAMPLE 2
SELECT *
FROM star1 PIVOT (
SUM(sales) as ss1 FOR qtr
IN ('Q1' AS Quarter1,
'Q2' AS Quarter2,
'Q3' AS Quarter3)
)Tmp;
--SAMPLE 3
SELECT
*
FROM (
SELECT
country,
state,
yr,
qtr,
sales,
cogs
FROM star1 ) A
PIVOT (
SUM(sales) as ss1 FOR qtr
IN ('Q1' AS Quarter1,
'Q2' AS Quarter2,
'Q3' AS Quarter3)
)Tmp;
Código gerado:¶
MULTIPLE FUNCTION¶
A função múltipla não é compatível com cláusulas PIVOT. Às vezes, consultas de funções múltiplas podem ser reescritas usando instruções de maiúsculas e minúsculas. Consulte a seguinte amostra do Teradata para mais informações https://docs.teradata.com/r/756LNiPSFdY~4JcCCcR5Cw/L0kKSOrOeu_68mcW3o8ilw
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
WITH CLAUSE¶
A PIVOT do Teradata tem uma cláusula WITH opcional, o que não é permitido na PIVOT do Snowflake.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
XML OUTPUT FORMAT¶
A saída XML da cláusula PIVOT é incompatível com o Snowflake.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
IN CLAUSE SUBQUERY¶
As subconsultas para a cláusula IN é incompatível.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
IN CLAUSE ANY SEQUENCE¶
Este erro é acionado quando a palavra-chave ANY é usada na cláusula IN. Isto não é compatível atualmente.
Código de exemplo¶
Código de entrada:¶
Código gerado:¶
INCLUDE/EXCLUDE NULLS¶
INCLUDE NULLS ou EXCLUDE NULLS não são opções válidas para cláusulas UNPIVOT no Snowflake.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Reescreva a consulta, se possível. Caso contrário, nenhuma ação adicional do usuário será necessária.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0016¶
O Snowflake não é compatível com a cláusula de opções.
Severidade ¶
Medium
Descrição ¶
Este EWI é adicionado a instruções DDLs quando o OPTIONS não tem opções compatíveis com o Snowflake.
Exemplo de código ¶
Código de entrada:
BigQuery¶
Código de saída:
Snowflake¶
SSC-EWI-0020¶
CUSTOM UDF INSERTED.
Gravidade¶
Low
Resumo¶
Há várias funções definidas pelo usuário (UDF) fornecidas por SnowConvert AI e usadas para reproduzir comportamentos de linguagem de origem que são incompatíveis com o Snowflake, as funcionalidades e descrições são detalhadas abaixo.
As UDFs são encontradas na pasta «UDF Helpers» criada no caminho de saída após a ocorrência da migração.
Práticas recomendadas¶
Verifique se a pasta UDF Helpers está sendo criada com arquivos dentro.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0021¶
Sem suporte.
Gravidade¶
Medium
Descrição¶
Esta mensagem aparece quando um nó ou instrução específica do código-fonte não é compatível com o Snowflake.
Exemplo de código¶
Código de entrada: ¶
Código gerado:¶
Práticas recomendadas¶
Se este erro ocorrer, é porque não há um equivalente no Snowflake para o nó que está sendo convertido.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0022¶
Um ou mais identificadores em uma instrução específica são considerados parâmetros por padrão.
Aviso
O EWI só é gerado quando o Javascript é a linguagem de destino para procedimentos armazenados. Este recurso de tradução está obsoleto, pois o Script Snowflake é a linguagem de destino recomendada para procedimentos armazenados.
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Gravidade¶
Medium
Descrição¶
Este erro é usado para relatar que um ou mais identificadores em uma instrução específica são considerados parâmetros por padrão.
Exemplo de código¶
Código de entrada: ¶
Código gerado:¶
Práticas recomendadas¶
Certifique-se de que todas as dependências (tabelas e exibições) relacionadas à instrução de procedimento estejam sendo migradas.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0023¶
Revisão de desempenho - Um loop contém uma instrução de inserção, exclusão ou atualização.
Aviso
O EWI só é gerado quando o Javascript é a linguagem de destino para procedimentos armazenados. Este recurso de tradução está obsoleto, pois o Script Snowflake é a linguagem de destino recomendada para procedimentos armazenados.
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Gravidade¶
Low
Descrição¶
Este aviso indica uma possível consideração que o usuário deve ter em termos de desempenho.
Exemplo de código¶
Código de entrada: ¶
Código gerado:¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0025¶
As variáveis de tempo de vinculação podem exigir uma alteração na consulta.
Aviso
O EWI só é gerado quando o Javascript é a linguagem de destino para procedimentos armazenados. Este recurso de tradução está obsoleto, pois o Script Snowflake é a linguagem de destino recomendada para procedimentos armazenados.
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Gravidade¶
Low
Descrição¶
A ação das variáveis de tempo de vinculação pode exigir alterações na consulta que as contém.
Exemplo de código¶
Código de entrada: ¶
Código gerado:¶
Práticas recomendadas¶
Não são necessárias ações adicionais do usuário.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0026¶
Variáveis qualificadas podem exigir uma conversão.
Aviso
O EWI só é gerado quando o Javascript é a linguagem de destino para procedimentos armazenados. Este recurso de tradução está obsoleto, pois o Script Snowflake é a linguagem de destino recomendada para procedimentos armazenados.
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Gravidade¶
Low
Descrição¶
Este aviso é adicionado quando há uma consulta com uma variável com um membro qualificado, como um registro Oracle ou um Teradata, para a variável de loop. Dependendo de onde a variável está sendo usada e do tipo de valor, uma conversão pode ser necessária para funcionar corretamente.
Exemplo de código¶
Código de entrada: ¶
Código gerado:¶
Código gerado com ajustes: ¶
Práticas recomendadas¶
Verifique se uma conversão para uma data, hora ou carimbo de data/hora é necessária para a vinculação. Alguns casos não são necessários porque uma conversão implícita é feita com o valor.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0027¶
A instrução a seguir usa uma variável/literal com uma consulta inválida e não será executada.
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Gravidade¶
Medium
Descrição¶
Este aviso é usado para relatar que uma instrução específica usa uma variável ou literal com uma consulta inválida e, por esse motivo, não será executada.
Exemplo de código¶
Código de entrada: ¶
Código gerado:¶
Práticas recomendadas¶
Verifique se uma conversão para uma data, hora ou carimbo de data/hora é necessária para a vinculação. Alguns casos não são necessários porque uma conversão implícita é feita com o valor.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0028¶
Tipo incompatível com o Snowflake
Gravidade¶
Medium
Descrição¶
Esta mensagem aparece quando um tipo é incompatível com o Snowflake.
Exemplo¶
Código de entrada (Oracle):¶
Código gerado:¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0029¶
O formato de dados da tabela externa é incompatível com o Snowflake
Gravidade¶
Medium
Descrição¶
O Snowflake é compatível com os seguintes formatos de tabela externa:
BigQuery |
Snowflake |
|---|---|
AVRO |
AVRO |
CSV |
CSV |
NEWLINE_DELIMITED_JSON |
JSON |
ORC |
ORC |
PARQUET |
PARQUET |
Quando uma tabela externa tem outro FORMAT não especificado na tabela acima, este EWI será gerado para informar ao usuário que o FORMAT não é suportado.
Exemplo de código¶
Código de entrada:¶
BigQuery¶
Código gerado:¶
Snowflake¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0030¶
A instrução abaixo tem usos de Dynamic SQL
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Gravidade¶
Medium
Descrição¶
Este erro é usado para indicar que a instrução tem usos de Dynamic SQL. Cada linguagem de origem específica tem seu próprio conjunto de instruções que podem executar Dynamic SQL. Dynamic SQL refere-se ao código criado como texto usando as ferramentas de manipulação de cadeia de caracteres fornecidas pela linguagem do mecanismo de banco de dados.
Este cenário é considerado um padrão complexo porque o Dynamic SQL é criado e executado em tempo de execução, tornando mais difícil rastrear e depurar erros. Este erro pretende ajudar a identificar alguns problemas que um analisador de código estático como o Snow Convert não identifica.
Exemplo de código¶
Teradata¶
Entrada¶
Saída¶
Oracle¶
Entrada¶
Saída¶
SQL Server¶
Entrada¶
Saída¶
Problemas no SQL dinâmico¶
Algo importante a ter em conta é que, ao migrar código Dynamic SQL, o SnowConvert AI não relatará nenhum tipo de problema dentro do Dynamic SQL no código de saída ou nos relatórios de avaliação. Isto acontecerá mesmo quando a documentação de um problema ou a especificação da tradução descrever que um problema sempre será adicionado ao código de saída. Aqui está um exemplo de uma migração no Oracle onde esta situação pode ser encontrada:
Oracle¶
Snowflake¶
No exemplo anterior, a consulta e a atribuição de variável dentro do procedimento serão convertidas exatamente da mesma forma; a diferença é que, no código Dynamic SQL, os problemas de conversão não serão mostrados no código de saída e nos relatórios de avaliação.
Práticas recomendadas¶
Use esta tag para rastrear cada instrução criada dinamicamente e revisar sua correção ao solucionar problemas.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0031¶
Função não incompatível.
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Severidade ¶
Medium
Descrição ¶
Este aviso é usado para relatar que uma função interna específica do Teradata, Oracle ou SQL Server é incompatível.
Código de exemplo ¶
Código de entrada (Oracle):¶
Código de saída: ¶
Input Code (Teradata):¶
Código de saída: ¶
Nota
Teradata hash functions (HASHBUCKET, HASHROW, HASHAMP, HASHBAKAMP) are tied to Teradata’s shared-nothing AMP architecture for data distribution. Snowflake manages data distribution internally and has no equivalent mechanism. While Snowflake provides a HASH function, the HASH function uses a different algorithm, produces values in a different range (Snowflake HASH: signed 64-bit integers; HASHBUCKET: 0–1,048,575), and handles NULLs differently. For this reason, SnowConvert marks these functions with EWI markers rather than attempting an automatic translation.
Práticas recomendadas ¶
Consulte os links a seguir para verificar a transformação atual da função específica que você está tentando converter:
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0032¶
External table requires an external stage to access an external location, define and replace the EXTERNAL_STAGE placeholder
Descrição¶
Ao transformar a instrução CREATE EXTERNAL TABLE, o SnowConvert AI vai gerar um espaço reservado EXTERNAL_STAGE, que precisa ser substituído pela área de preparação externa criada para conexão com a localização externa pelo Snowflake.
Consulte os seguintes guias para configurar a integração de armazenamento e a área de preparação externa necessários em sua conta Snowflake:
Para tabelas externas que fazem referência ao Google Cloud Storage
Para tabelas externas que fazem referência ao Armazenamento de blobs Azure
Exemplo de código¶
Código de entrada:¶
BigQuery¶
Código gerado:¶
Snowflake¶
CREATE OR REPLACE EXTERNAL TABLE test.Employees_test
(
Employee_id INTEGER AS CAST(GET_IGNORE_CASE($1, 'c1') AS INTEGER),
Name STRING AS CAST(GET_IGNORE_CASE($1, 'c2') AS STRING),
Mail STRING AS CAST(GET_IGNORE_CASE($1, 'c3') AS STRING),
Position STRING AS CAST(GET_IGNORE_CASE($1, 'c4') AS STRING),
Salary INTEGER AS CAST(GET_IGNORE_CASE($1, 'c5') AS INTEGER)
)
!!!RESOLVE EWI!!! /*** SSC-EWI-0032 - EXTERNAL TABLE REQUIRES AN EXTERNAL STAGE TO ACCESS gs://sc_external_table_bucket, DEFINE AND REPLACE THE EXTERNAL_STAGE PLACEHOLDER ***/!!!
LOCATION = @EXTERNAL_STAGE
AUTO_REFRESH = false
PATTERN = 'folder_with_csv/Employees.csv'
FILE_FORMAT = (TYPE = CSV SKIP_HEADER =1);
Práticas recomendadas¶
Configure sua conexão externa na conta Snowflake e substitua o espaço reservado EXTERNAL_STAGE para concluir a transformação.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0033¶
Formato removido, informações semânticas não encontradas.
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Gravidade¶
Low
Descrição¶
Este aviso aparece quando uma coluna usada em uma função CAST com um formato de saída específico não foi encontrada no código-fonte.
Exemplo de código¶
Código de entrada (Teradata):¶
Código gerado: ¶
Práticas recomendadas¶
Certifique-se de que todas as dependências (tabelas e exibições) relacionadas à instrução de procedimento estejam sendo migradas.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0034¶
Formato removido.
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Gravidade¶
Low
Descrição¶
Este aviso aparece quando o formato da coluna usada em uma função CAST é removido.
Exemplo de código¶
Código de entrada (Teradata):¶
Código gerado: ¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0035¶
Instrução Check incompatível.
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Gravidade¶
Low
Descrição¶
A restrição CHECK não é compatível com o Snowflake, mas não o afeta funcionalmente.
Exemplo de código¶
Código de entrada Oracle:¶
Código gerado: ¶
Código de entrada do Teradata: ¶
Código gerado: ¶
Código de entrada SqlServer¶
Código gerado:¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0036¶
Tipo de dados convertido em outro tipo de dados.
Gravidade¶
Low
Descrição¶
Este aviso aparece quando um tipo de dados é alterado para outro.
Exemplo de código¶
Código-fonte:¶
Código convertido: ¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0040¶
Cláusula incompatível.
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Gravidade¶
Low
Descrição¶
This warning is added when there is a statement that is not supported in Snowflake.
Exemplo de código¶
No exemplo a seguir, a cláusula PERCENT do SQL Server é usado na consulta SELECT, o que não é compatível com o Snowflake.
Código de entrada (SQL Server):¶
Código-fonte: ¶
Práticas recomendadas¶
Revise a funcionalidade original da instrução e verifique se ela é realmente necessária para suas necessidades específicas no Snowflake.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0041¶
O arquivo tem uma codificação inesperada e não foi traduzido
Nota
Este EWI está obsoleto; consulte a documentação SSC-OOS-0001.
Descrição¶
Este problema acontece quando um arquivo de código-fonte tem um formato de codificação não reconhecido pela ferramenta. A codificação de caracteres é o processo de atribuição de números a caracteres gráficos. Neste contexto, caracteres escritos de linguagem humana, assim o erro indica que a ferramenta de conversão não conseguiu reconhecer certos caracteres.
Práticas recomendadas¶
Todos os arquivos na pasta de entrada devem ter a mesma codificação para evitar esse erro.
The appropriate encoding should be selected through the conversion settings or by utilizing the –encoding conversion parameter with the CLI. To determine which encoding to select online tools such as Free Online Formater can be used or run the command
file -i *in the case of Linux or OS.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0045¶
O nome da coluna é Snowflake Reserved Keyword.
Gravidade¶
Medium
Descrição¶
Em alguns casos, nomes de colunas válidos na linguagem de origem podem entrar em conflito com as palavras-chave reservadas do Snowflake. Esses conflitos ocorrem porque o Snowflake reserva um conjunto de palavras-chave que não podem ser usadas diretamente como nomes de colunas sem tratamento especial. Para obter mais detalhes, consulte a documentação oficial do Snowflake sobre palavras-chave reservadas e limitadas.
Exemplo de código¶
Entrada¶
Saída¶
Práticas recomendadas¶
Considere renomear as colunas que usam nomes incompatíveis com o Snowflake.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0046¶
Nested function/procedure declarations are considered a complex pattern and not supported in Snowflake.
Gravidade¶
Crítico
Descrição¶
Como o Snowflake não é compatível com a declaração de funções/procedimentos aninhados, este aviso é adicionado a qualquer instrução para criar função ou procedimento na qual foram encontradas declarações aninhadas.
Exemplo de código¶
Entrada¶
Saída¶
Práticas recomendadas¶
Remova as declarações aninhadas da função/procedimento.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0049¶
Uma tabela temporária global está sendo referenciada.
Nota
Este EWI está obsoleto, consulte a documentação SSC-FDM-0023.
Gravidade¶
Medium
Descrição¶
O SnowConvert AI transforma tabelas temporárias globais em funções de criação de tabela regulares. As referências a estas tabelas podem se comportar de forma diferente do esperado.
Exemplo de código¶
Entrada¶
Saída¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0052¶
Objeto inutilizável
Gravidade¶
Medium
Descrição¶
Este erro acontece quando o código-fonte usa um parâmetro ou variável incompatível ou não reconhecido pela ferramenta de conversão.
Exemplo de código¶
Código de entrada (Oracle):¶
Código gerado:¶
Práticas recomendadas¶
Procure uma alternativa para o tipo de dados usado.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0053¶
O objeto pode não funcionar.
Gravidade¶
Low
Descrição¶
Esse erro acontece quando a ferramenta de conversão não conseguiu determinar o tipo de dados de uma variável. Isto pode acontecer porque a declaração de uma variável pode estar faltando.
Exemplo de código¶
Código de entrada (Oracle):¶
Código gerado:¶
Práticas recomendadas¶
Certifique-se de que o código de entrada tenha a variável declarada.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0054¶
Subconsulta de junção externa incompatível
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Gravidade¶
Low
Descrição¶
Este erro acontece quando uma subconsulta correlacionada é encontrada em uma expressão lógica OR de uma OUTER JOIN (Left, Right ou Full). Nestes casos, elas podem produzir resultados inconsistentes ou causar o seguinte erro:
Erro de compilação do SQL: Não é possível avaliar o tipo de subconsulta incompatível.
Estas limitações com subconsultas são mencionadas na Documentação do Snowflake e algumas informações sobre elas também podem ser encontradas em fóruns do Snowflake.
Exemplo de código¶
Código de entrada (Teradata):¶
Código gerado:¶
Práticas recomendadas¶
Verifique se o código de saída não produz um erro de compilação.
Verifique a equivalência funcional do código de saída.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0056¶
Custom Types Not Supported
Nota
Deprecation: This issue code is deprecated. SnowConvert now translates many Oracle and cross-dialect CREATE TYPE definitions to Snowflake native user-defined types where supported. This entry’s Input Code and Generated Code examples are kept for historical reference and may not match current tool output. For current behavior, see the translation reference for your source: Oracle, IBM DB2, Teradata, SQL Server / Azure Synapse, PostgreSQL / Greenplum / Netezza, Sybase IQ.
Gravidade¶
Low
Descrição¶
This message appears when a user-defined type (UDT) is defined. User-defined types are not supported in Snowflake, so references to the custom type are changed to an appropriate Snowflake type (such as VARIANT or OBJECT).
Snowflake has a UDT Private Preview feature available. For more information about accessing this feature, please contact udt-prpr@snowflake.com.
Nota
A definição de tipo é colocada como comentário, mas ainda está sendo levada em conta para a resolução de usos. Consulte SSC-EWI-0062 para obter mais informações.
Exemplo de código¶
Código de entrada (Oracle):¶
Código gerado:¶
Práticas recomendadas¶
Consider using Snowflake’s OBJECT or VARIANT data types as alternatives to user-defined types for storing complex structured data.
For more information about the UDT Private Preview feature, contact udt-prpr@snowflake.com.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0058¶
A funcionalidade é atualmente incompatível com o Script Snowflake
Gravidade¶
Medium
Descrição¶
Este erro acontece quando uma instrução usada em um procedimento de criação é atualmente incompatível com o Script Snowflake.
Exemplo de código¶
Código de entrada (Oracle):¶
Código gerado:¶
Práticas recomendadas¶
Nenhuma ação do usuário final é necessária.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0062¶
Uso de tipo personalizado alterado para variante
Gravidade¶
Low
Descrição¶
Esta mensagem aparece quando um tipo personalizado é referenciado e, então, seu uso é alterado para uma variante.
Nota
Esta mensagem está fortemente relacionada ao SSC-EWI-0056.
Exemplo de código¶
Código de entrada (Oracle):¶
Código gerado:¶
Práticas recomendadas¶
Lembre-se de transformar todos os dados de entrada em um tipo de dados compatível com Variant também.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com.
SSC-EWI-0064¶
Tipo personalizado referenciado na consulta não encontrado
Gravidade¶
High
Descrição¶
Este erro acontece quando um tipo personalizado é referenciado em uma fonte para uma instrução DML, mas o tipo personalizado nunca foi definido.\ Por exemplo, em uma coluna de tabela cujo tipo pode ser um UDT, mas ele nunca foi definido.
Aviso
Não deve ser confundido com SSC-FDM-0015, quando foi referenciado em uma consulta DDL.
Exemplo de código¶
Código de entrada (Oracle):¶
Código gerado:¶
Práticas recomendadas¶
Verifique se o tipo referenciado foi definido no código de entrada.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0066¶
Expressão incompatível no Snowflake.
Severidade ¶
High
Descrição ¶
Este erro é usado para informar que uma expressão específica não é compatível com Snowflake.
Código de exemplo ¶
Código de entrada:¶
Código de saída: ¶
Práticas recomendadas ¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0067¶
A UDF foi transformada em procedimento do Snowflake; não há suporte para chamar procedimentos dentro de uma consulta.
Gravidade¶
High
Descrição¶
Esse erro é adicionado quando uma chamada a uma UDF (função definida pelo usuário) é encontrada dentro de uma consulta. UDFs do Oracle e UDFs dentro de pacotes e algumas UDFs do SQL Server, estão sendo transformadas em procedimentos armazenados do Snowflake, que não podem ser chamados de uma consulta.
A função é transformada em um procedimento armazenado para manter a equivalência funcional e a chamada de função é transformada em uma função vazia da UDF do Snowflake.
Nota
Este EWI está fortemente relacionado a SSC-EWI-0068
Exemplo de código¶
SQL Server:¶
Código de entrada¶
Código gerado¶
Oracle:¶
Código de entrada¶
Código gerado¶
Práticas recomendadas¶
O código-fonte pode precisar ser reestruturado para se encaixar nas funções definidas pelo usuário abordagem.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0068¶
A função definida pelo usuário foi transformada em um procedimento do Snowflake.
As funções definidas pelo usuário do Snowflake são incompatíveis com os mesmos recursos do Oracle ou SQL Server. Para manter a equivalência funcional, a função é transformada em um procedimento armazenado do Snowflake. Isso afetará seu uso em consultas.
Exemplo de código¶
SQL Server:¶
Código de entrada¶
Código gerado¶
Oracle:¶
Código de entrada¶
CREATE OR REPLACE FUNCTION FUN1(PAR1 VARCHAR)
RETURN VARCHAR
IS
VAR1 VARCHAR(20);
VAR2 VARCHAR(20);
BEGIN
SELECT COL1 INTO VAR1 FROM TABLE1 where col1 = 1;
VAR2 := PAR1 || VAR1;
RETURN VAR2;
END;
/
Código gerado¶
Práticas recomendadas¶
Separe as consultas internas para manter a mesma lógica.
O código-fonte pode precisar ser reestruturado para se encaixar nas funções definidas pelo usuário abordagem.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0073¶
Revisão de equivalência funcional pendente
Gravidade¶
Medium
Descrição¶
This EWI is added when there is a grammar clause in the input platform that has not been reviewed by the SnowConvert AI developer team. The code may require manual revision for it to work in Snowflake.
Exemplo de código¶
SQLServer:¶
Código de entrada¶
Código gerado¶
Observe, na linha 6 do código de entrada, que há uma referência a uma instrução INSERT com DEFAULT VALUES. Esta é uma instrução atualmente incompatível com o SnowConvert AI e é por isso que o EWI é gerado nas linhas 11 e 12.
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0077¶
Ciclo encontrado entre chamadas de CTE. Os CTEs não pode ser ordenados.
Gravidade¶
Low
Descrição¶
Este aviso é adicionado quando uma consulta que tem várias chamadas de referência CTE (expressão de tabela comum) cria um ciclo que não pode determinar a ordem de chamada das CTEs e, assim, as CTEs não podem ser ordenadas e a consulta permanecerá como a origem.
Exemplo de código¶
Código de entrada (Teradata):¶
Código gerado:¶
Práticas recomendadas¶
Não são necessárias ações adicionais do usuário.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0080¶
O valor padrão não é permitido em colunas binárias
Severidade ¶
Low
Descrição ¶
This EWI is added when the source code has a default value for BINARY data type, which is not supported in Snowflake SQL
Código de exemplo ¶
Código de entrada (SqlServer):
Código de saída:
Práticas recomendadas ¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0084¶
XMLTABLE não é suportado.
Gravidade¶
High
Descrição¶
A função XMLTABLE é atualmente incompatível.
Exemplo de código¶
Código de entrada (DB2):¶
Código gerado:¶
Práticas recomendadas¶
Verifique este blog para saber sobre transformações XML no Snowflake.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0086¶
Substituição de caracteres inválidos para o novo identificador
Nota
Este EWI está obsoleto, consulte a documentação SSC-FDM-0030.
Gravidade¶
Low
Descrição¶
O identificador fornecido possui caracteres inválidos para a linguagem de saída. Esses caracteres foram substituídos por seus códigos UTF-8.
Exemplo de código¶
Código de entrada (Oracle):¶
Código gerado:¶
Práticas recomendadas¶
Nenhuma ação do usuário final é necessária.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0092¶
A exibição materializada foi convertida em exibição comum.
Perigo
Obsoleto
Gravidade¶
Low
Descrição¶
Currently, all Materialized Views are being converted to regular Views. This process eliminates additional clauses that the Materialized Views may have had. For more information, see Limitations on creating materialized views.
Exemplo de código¶
Código de entrada: ¶
Código gerado:¶
Práticas recomendadas¶
Não são necessárias ações adicionais do usuário.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0094¶
Declaração de rótulo sem suporte
Gravidade¶
Low
Descrição¶
Atualmente, não há equivalente para declaração de rótulos no Snow Scripting, portanto, um EWI é adicionado, e o rótulo é colocado como comentário
Exemplo de código¶
Código de entrada (Oracle):¶
Código gerado:¶
Práticas recomendadas¶
Nenhuma ação do usuário final é necessária.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0095¶
Create Type not supported in Snowflake
Nota
Deprecation: This issue code is deprecated. Snowflake supports native user-defined types, and SnowConvert emits CREATE TYPE for many supported patterns. This entry’s Input Code and Generated Code examples are preserved as historical reference. For current conversion behavior, see the translation reference for your source: Oracle, IBM DB2, Teradata, SQL Server / Azure Synapse, PostgreSQL / Greenplum / Netezza, Sybase IQ.
Gravidade¶
High
Descrição¶
User-defined types (UDTs) created with the CREATE TYPE statement are not currently supported in Snowflake. When SnowConvert AI encounters a CREATE TYPE statement, it adds this warning to indicate that manual intervention is required.
Snowflake has a UDT Private Preview feature available. For more information about accessing this feature, please contact udt-prpr@snowflake.com.
Exemplo de código¶
Código de entrada (Oracle):¶
Código gerado:¶
Práticas recomendadas¶
Consider using Snowflake’s OBJECT or VARIANT data types as alternatives to user-defined types for storing complex structured data.
For more information about the UDT Private Preview feature, contact udt-prpr@snowflake.com.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0101¶
Nome do rótulo da transação colocado como comentário por não ser aplicável no Snowflake
Gravidade¶
Low
Descrição¶
O Snowflake não opera nomes de rótulos de transação porque não deve haver transações aninhadas a identificar em instruções COMMIT ou ROLLBACK diferentes.
Exemplo de código¶
Código de entrada (SQL Server):¶
Código gerado:¶
Práticas recomendadas¶
Nenhuma ação do usuário final é necessária.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0102¶
Opção de instrução removida do código; já tratada na conversão para Snowflake
Nota
Este EWI está obsoleto.
Gravidade¶
Low
Descrição¶
As instruções do Snowflake podem remover algumas opções quando tratadas pela regra de conversão. Portanto, ele será removido do código de saída, mas a funcionalidade é equivalente.
Exemplo de código¶
Código de entrada (PostgreSQL):¶
Código gerado:¶
Práticas recomendadas¶
Nenhuma ação do usuário final é necessária.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0107¶
Literal de intervalo incompatível com o cenário atual
Gravidade¶
High
Descrição¶
Os intervalos do Snowflake só podem ser usados em operações aritméticas. Intervalos utilizados em qualquer outro cenário são incompatíveis.
Código de exemplo ¶
Código de entrada:
Código de saída:
Práticas recomendadas ¶
Nenhuma ação do usuário final é necessária.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0108¶
A subconsulta a seguir corresponde a pelo menos um dos padrões considerados inválidos e pode produzir erros de compilação
Gravidade¶
High
Descrição¶
No Snowflake, há vários padrões e elementos em uma subconsulta que são incompatíveis e a tornam não executável. De acordo com a documentação do Snowflake sobre subconsultas, os seguintes tipos de subconsultas são compatíveis:
Subconsultas escalares não correlacionadas em qualquer lugar em que uma expressão de valor possa ser usada.
Subconsultas escalares correlacionadas em cláusulas WHERE.
Subconsultas EXISTS, ANY/ALL e IN em cláusulas WHERE. Estas subconsultas podem ser correlacionadas ou não correlacionadas.
Observe que a lista acima não é conclusiva, o que significa que as subconsultas que não correspondem a nenhum dos tipos especificados ainda podem ser consideradas válidas.
Para ajudar a evitar erros, o SnowConvert AI conhece um conjunto de padrões de subconsultas que normalmente invalidam subconsultas. Esse EWI é adicionado para alertar o usuário de que a subconsulta corresponde a pelo menos um desses padrões e, portanto, pode produzir erros quando compilada no Snowflake.
Exemplo de código¶
Código de entrada: ¶
Código gerado:¶
Práticas recomendadas¶
Verifique a subconsulta no Snowflake; se ela compilar sem problemas, então este EWI poderá ser ignorado com segurança.
Verifique a seção de padrões complexos para subconsultas dentro do relatório de avaliação, ele contém uma lista dos padrões que normalmente invalidam as subconsultas e suas ocorrências. Ela pode ser usada para revisar as subconsultas migradas e por que são consideradas inválidas.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0109¶
A sintaxe de Alter table não é aplicável no Snowflake.
Gravidade¶
Medium
Descrição¶
A sintaxe de Alter Table usada não é aplicável no Snowflake, portanto, esta mensagem está sendo adicionada.
Exemplo de código:¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Não são necessárias ações adicionais do usuário.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0110¶
Transformação não realizada devido a dependências ausentes
Gravidade¶
Low
Descrição¶
Quando há dependências ausentes, o EWI é adicionado para indicar que uma transformação não pode ser executada. O SnowConvert AI utiliza árvores de sintaxe abstratos para criar um modelo semântico do código de entrada, que é então usado para gerar um novo código que replica a funcionalidade da fonte original. Entretanto, neste cenário específico, a transformação não pôde ser concluída porque o modelo semântico carece de certas dependências.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Adicione as dependências ausentes ao código de entrada.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0111¶
Apenas um nível de aninhamento é permitido para procedimentos aninhados no Snowflake.
Gravidade¶
Crítico
Descrição¶
O Snowflake só é compatível com um nível de aninhamento para procedimentos. Não é permitido definir um procedimento aninhado dentro de outro procedimento aninhado. Se este padrão for detectado, este erro será gerado.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Refatore seu código para evitar mais de um nível de procedimentos aninhados. Mova procedimentos profundamente aninhados para o nível superior ou reestruture sua lógica para cumprir a limitação de aninhamento de nível único do Snowflake.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0112¶
A sobrecarga de procedimentos aninhados é incompatível.
Gravidade¶
Crítico
Descrição¶
O Snowflake não é compatível com a sobrecarga de procedimentos aninhados. Em outras palavras, você não pode definir vários procedimentos aninhados com o mesmo nome, mas listas de parâmetros diferentes dentro do mesmo procedimento pai. Se o código-fonte contiver procedimentos aninhados sobrecarregados, este erro será gerado para indicar que tais padrões são incompatíveis com o Snowflake.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
A tentativa de sobrecarregar os procedimentos aninhados no Snowflake resultará em erros de compilação ou comportamento inesperado. Para garantir a compatibilidade, você deve refatorar seu código para evitar sobrecarregar os procedimentos aninhados. Considere renomear procedimentos para que cada procedimento aninhado tenha um nome exclusivo em seu escopo ou reestruture sua lógica para eliminar a necessidade de sobrecarga. Além disso, revise e atualize todas as chamadas de procedimento para usar os novos nomes exclusivos.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0113¶
O uso de UDF do Script Snowflake é incompatível neste cenário.
Gravidade¶
Medium
Descrição¶
O uso de UDFs do Script Snowflake em cenários específicos é incompatível. Os seguintes casos são compatíveis:
UDFs do Script Snowflake não podem ser usadas ao criar uma exibição materializada.
Não é possível usar UDFs do Script Snowflake para especificar um valor de coluna padrão.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0114¶
MIXED CONTINUE AND EXIT EXCEPTION HANDLERS IN THE SAME BLOCK ARE NOT SUPPORTED BY SNOWFLAKE SCRIPTING.
Gravidade¶
Medium
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
In database systems like DB2, Teradata, and others, it is possible to declare both CONTINUE and EXIT exception handlers in the same procedural block. However, Snowflake Scripting does not support mixing CONTINUE and EXIT handlers within the same EXCEPTION block.
When SnowConvert AI encounters a procedure with both types of handlers declared in the same block, it generates separate EXCEPTION blocks for each handler type and adds this EWI to indicate that manual review and testing are required to ensure the converted code maintains the intended behavior.
Key Behavioral Differences:
CONTINUE HANDLER: Allows execution to continue after handling the exception
EXIT HANDLER: Terminates the current block after handling the exception
Since Snowflake cannot mix these behaviors in a single EXCEPTION block, the conversion may result in different execution flow compared to the source system.
Exemplo de código¶
Código de entrada:¶
DB2
Código gerado:¶
Snowflake
Práticas recomendadas¶
When dealing with mixed CONTINUE and EXIT handlers:
Review Exception Handling Logic: Carefully review the converted code to understand how exceptions are handled in each block.
Test Thoroughly: Test all error scenarios to ensure the behavior matches the source system’s expectations.
Consider Refactoring: If possible, refactor the code to use only one type of handler (either all CONTINUE or all EXIT) within a block.
Use Nested Blocks: Consider restructuring the logic using nested BEGIN…END blocks, where each block has its own exception handling strategy.
Document Behavior Changes: Document any differences in exception handling behavior for future maintenance.
Recommended Pattern¶
Instead of mixing handlers, consider this approach:
SSC-EWI-0115¶
Iceberg table contains unsupported datatypes.
Gravidade¶
Medium
Descrição¶
This EWI is emitted for tables that contain datatypes currently not supported by Snowflake on Iceberg tables. Currently, Snowflake offers support for Iceberg tables in V2 format.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Consider modifying the columns and logic to make use of datatypes supported in Iceberg tables
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0116¶
Unsupported construct in Snowflake
Nota
This issue code is used for multiple scenarios. See the applicable scenario below.
Scenario 1: CHECK Constraints with Unsupported Expressions¶
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Gravidade¶
Low
Descrição¶
This EWI is emitted when a CHECK constraint expression contains functions or constructs that Snowflake does not support in CHECK constraints. Snowflake CHECK constraints only support deterministic, scalar expressions without user-defined functions or non-deterministic built-in functions.
The unsupported expression types include:
User-defined functions (UDFs): Any function that is not a Snowflake built-in function, including schema-qualified function calls or unresolved function references
Non-deterministic functions: Built-in functions that return different values on each call or depend on session/system context, such as
NEWID(),RAND(),UUID_STRING(),GETDATE(),CURRENT_TIMESTAMP(),CURRENT_USER(),CURRENT_ROLE()
When this EWI is emitted, the CHECK constraint is flagged with the !!!RESOLVE EWI!!! marker and the specific reason (e.g., «user-defined function», «non-deterministic function») is included in the annotation.
Exemplo de código¶
Example 1: CHECK Constraint with User-Defined Function¶
Código de entrada (SQL Server):¶
Código gerado:¶
Example 2: CHECK Constraint with Non-Deterministic Function¶
Código de entrada (SQL Server):¶
Código gerado:¶
Example 3: CHECK Constraint with Unresolved Function (Oracle)¶
Código de entrada (Oracle):¶
Código gerado:¶
Práticas recomendadas¶
Replace UDFs with inline expressions: If the user-defined function performs validation logic, consider rewriting it as an inline SQL expression using Snowflake built-in functions
Remove dynamic constraints: CHECK constraints with non-deterministic functions typically try to enforce rules that change over time. Consider alternative approaches such as:
Application-level validation
Triggers or streams to validate data changes
Regular scheduled tasks to audit and flag violations
Simplify validation logic: Ensure CHECK constraints only use deterministic, scalar expressions that can be evaluated at insert/update time
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
Scenario 2: Interval Values Inside Semi-Structured Type Columns¶
Gravidade¶
Medium
Descrição¶
This EWI is emitted when the --UseIntervalDatatype preview flag is enabled and an INTERVAL data type appears inside a semi-structured type column such as ARRAY, MAP, or STRUCT. Snowflake does not support storing INTERVAL values inside VARIANT-based columns. The outer type is still converted (for example, STRUCT becomes VARIANT), but the EWI warns that the INTERVAL values within cannot be preserved.
For more details on how interval types are handled across languages, see the Interval Data Types translation reference.
Exemplo de código¶
Input Code (BigQuery):¶
Generated Code (BigQuery):¶
Input Code (Hive):¶
Generated Code (Hive):¶
Práticas recomendadas¶
Consider extracting interval values from semi-structured columns into dedicated INTERVAL-typed columns
If interval values must be stored in VARIANT columns, store them as strings and convert back to intervals when needed using CAST expressions
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0117¶
Snowflake does not support interval data type in UDFs or Snowflake Scripting.
Gravidade¶
Medium
Descrição¶
This EWI is emitted when the --UseIntervalDatatype preview flag is enabled and an INTERVAL data type is used in a context not yet supported by Snowflake Scripting: UDF or procedure parameters, return types, or variable declarations. The INTERVAL type is preserved in the output for reference, but the EWI warns that it will not work at runtime in these contexts.
For more details on how interval types are handled across languages, see the Interval Data Types translation reference.
Exemplo de código¶
Input Code (BigQuery):¶
Generated Code (BigQuery):¶
Código de entrada (Teradata):¶
Generated Code (Teradata):¶
Práticas recomendadas¶
Consider using VARCHAR parameters for interval values and converting them inside the procedure body using CAST expressions
If the interval parameter is used only for datetime arithmetic within the procedure, consider passing the numeric components separately
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0118¶
Snowflake does not support interval columns in Dynamic Tables.
Gravidade¶
Medium
Descrição¶
This EWI is emitted when the --UseIntervalDatatype preview flag is enabled and a materialized view (converted to a Snowflake Dynamic Table) references columns with INTERVAL data types. Snowflake Dynamic Tables do not support INTERVAL-typed columns. The Dynamic Table is still generated, but the EWI warns that it may fail at runtime.
For more details on how interval types are handled across languages, see the Interval Data Types translation reference.
Exemplo de código¶
Input Code (BigQuery):¶
Generated Code (BigQuery):¶
Práticas recomendadas¶
Consider excluding INTERVAL columns from the Dynamic Table query, or casting them to VARCHAR before selecting
If the interval values are needed in downstream queries, consider creating a regular view instead of a Dynamic Table for the INTERVAL columns
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-0119¶
Interval type column was converted to VARCHAR.
Gravidade¶
Low
Descrição¶
This EWI is emitted in Dynamic Table contexts when the --UseIntervalDatatype preview flag is not enabled and a source column had an INTERVAL data type that was converted to VARCHAR. This alerts users that the column in the Dynamic Table query originally referenced an interval-typed column that lost its type during conversion.
Exemplo de código¶
Input Code (BigQuery):¶
Generated Code (BigQuery):¶
Práticas recomendadas¶
Consider enabling the
--UseIntervalDatatypepreview flag to preserve native INTERVAL types where possibleReview the VARCHAR columns in the output to ensure the string representation of interval values is compatible with your application logic
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com