SnowConvert AI – Diferenças funcionais do Oracle¶
SSC-FDM-OR0001¶
Nota
Esta FDM foi adicionada para uma versão antiga do Oracle SnowConvert AI. Atualmente, ela está obsoleta.
Descrição¶
This error is related to the Assessment report file. It appears when an error occurs while writing the assessment details report file.
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0002¶
O valor inicial da sequência excede o valor máximo permitido pelo Snowflake.
Nota
Esta FDM está obsoleta. Consulte a documentação SSC-EWI-OR0068.
Descrição¶
Este erro ocorre quando o valor da instrução START WITH excede o valor máximo permitido pelo Snowflake. O que o Snowflake diz sobre o valor inicial é: Especifica o primeiro valor retornado pela sequência. Os valores compatíveis são quaisquer valores que podem ser representados por um inteiro de 64 bits em complemento de dois (de -2^63 a 2^63-1). Portanto, de acordo com o mencionado anteriormente, o valor máximo permitido é 9223372036854775807 para números positivos e 9223372036854775808 para números negativos.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Pode-se recomendar apenas redefinir a sequência e modificar também o uso dela. NOTE: a coluna de destino deve ter espaço suficiente para armazenar esse valor.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0003¶
Cláusula de pesquisa removida da instrução com o elemento.
Nota
Esta FDM está obsoleta. Consulte a documentação SSC-EWI-OR0038.
Descrição¶
A search_clause é utilizada para definir a ordem em que as linhas são processadas em uma instrução SELECT. Essa funcionalidade permite uma travessia personalizada dos dados, garantindo que os resultados sejam retornados em uma sequência específica com base nos critérios especificados. É importante observar, no entanto, que esse comportamento, caracterizado pela search_clause, não é compatível com o Snowflake.
Em bancos de dados como o Oracle, a search_clause é comumente utilizada em conjunto com consultas recursivas ou expressões de tabela comuns (CTEs) para influenciar a sequência em que os dados hierárquicos são explorados. Ao designar uma coluna específica ou um conjunto de colunas na search_clause, você pode controlar a travessia da hierarquia por profundidade primeiro ou por largura primeiro, afetando a ordem em que as linhas são processadas.
No Snowflake, a mensagem search_clause será gerada e a search_clause será eliminada posteriormente.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Recomendação¶
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-FDM-OR0004¶
A palavra-chave siblings foi removida da cláusula order by porque o Snowflake não é compatível com ela.
Descrição¶
No Oracle, a cláusula ORDER BY SIBLINGS pode ser utilizada em consultas hierárquicas para preservar a ordem dos dados fornecida pela hierarquia, aplicando uma reordenação dos valores que são irmãos na mesma hierarquia. Isso não é compatível com o Snowflake.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Embora a mesma ordenação exata obtida com a cláusula SIBLINGS possa não estar disponível, existem algumas alternativas para conseguir um resultado semelhante.
Incorpore a consulta dentro de uma consulta externa que aplique a classificação desejada usando
ORDER BY.Crie um CTE com a consulta hierárquica usando
CONNECT BYe referencie o CTE em uma consulta subsequente para aplicarORDER BYpara classificação de irmãos (linhas no mesmo nível).
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0005¶
Sinônimos não são compatíveis com o Snowflake, mas as referências a este sinônimo foram alteradas pelo nome do objeto original.
Descrição¶
Sinônimos não são compatíveis com o Snowflake. Os sinônimos são substituídos pelo nome original.
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-FDM-OR0006¶
Estado de restrição removido da restrição em linha not null.
Descrição¶
Este aviso ocorre quando a restrição de coluna not null contém um dos seguintes estados de restrição do Oracle como parte da definição em linha da coluna:
O Snowflake não é compatível com esses estados; portanto, eles serão removidos da restrição inline NOT NULL.
Código de exemplo ¶
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-FDM-OR0007¶
O Snowflake não é compatível com o controle de versão de objetos. Os desenvolvedores devem considerar abordagens alternativas para o controle de versão do código.
Descrição¶
Snowflake doesn’t support the versioning of objects. The modifier EDITIONABLE or NONEDITIONABLE is removed in the converted code and a warning is added.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
O usuário deve considerar abordagens alternativas para o controle de versão do código.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0008¶
Quantificador configurado incompatível
Nota
Esta FDM está obsoleta. Consulte a documentação SSC-EWI-OR0071.
Descrição¶
O quantificador «all» não é compatível com o Snowflake. O modificador é removido do código-fonte e um aviso é adicionado; o código resultante pode se comportar de maneira inesperada.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
No Snowflake, os operadores INTERSECT e MINUS/EXCEPT sempre removerão valores duplicados.
Práticas recomendadas¶
Verifique alternativas no Snowflake para emular a funcionalidade do quantificador «all».
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0009¶
Os valores do cursor implícito SQL podem ser diferentes.
Descrição¶
Nota
Generate Procedures and Macros using JavaScript as the target language adding the following flag -t JavaScript or --PLTargetLanguage JavaScript
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Este EWI é exibido quando o valor do cursor implícito SQL é utilizado. Isso ocorre porque o Oracle usa valores diferentes dependendo do tipo de consulta. Por exemplo, para SELECT, o valor utilizado para definir os valores do cursor implícito SQL é o número de linhas retornadas pela consulta. Quando o tipo de consulta é UPDATE/CREATE/DELETE/INSERT, o valor utilizado é o número de linhas afetadas; este é o principal motivo pelo qual este EWI é exibido.
Exemplo de código¶
Código de entrada:¶
-- Additional Params: -t JavaScript
--Transformation for implicit cursor
CREATE OR REPLACE PROCEDURE SP_SAMPLE AUTHID DEFINER IS
stmt_no POSITIVE;
BEGIN
IF SQL%ROWCOUNT = 0 THEN
EXIT ;
END IF;
IF SQL%ISOPEN THEN
EXIT ;
END IF;
IF SQL%FOUND THEN
EXIT ;
END IF;
IF SQL%NOTFOUND THEN
EXIT ;
END IF;
END;
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-FDM-OR0010¶
A precisão menor do tipo de dados NUMBER foi aumentada para corresponder à escala.
Descrição¶
O tipo de dados NUMBER armazena números de ponto fixo e de ponto flutuante. Esses dados são portáteis entre diferentes sistemas operacionais que executam o Oracle Database. O tipo de dados NUMBER é recomendado para a maioria dos casos em que você precisa armazenar dados numéricos. A sintaxe é a seguinte: NUMBER (X, Y), em que X é a precisão e Y é a escala.
Por exemplo, NUMBER(5, 3) é um número que tem 2 dígitos antes da vírgula decimal e 3 depois da vírgula decimal, assim como o número a seguir:
Outras considerações importantes:
Escala Y especifica o número máximo de dígitos à direita da vírgula decimal.
A escala de precisão Y-X especifica o número mínimo de zeros presentes após a vírgula decimal.
Esta mensagem é exibida quando um NUMBER tem uma precisão menor que sua escala. O Snowflake não é compatível com esse recurso, e esta mensagem é utilizada para indicar que o valor da precisão foi aumentado para manter a equivalência.
Observação
Considere que há casos em que esse problema pode ocorrer em conjunto com outras transformações conhecidas ou nem acontecer. Por exemplo, nos casos em que a escala é substituída por dezenove e a precisão anterior é maior que dezenove, NOT exibirá esta mensagem.
Exemplo de código¶
Código de entrada:¶
Consultas¶
Resultado¶
Código gerado:¶
Consultas¶
Resultado¶
Práticas recomendadas¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0011¶
O argumento booleano foi removido porque a opção «adicionar à pilha» não é compatível.
Descrição¶
This warning is displayed when the third optional argument of RAISE_APPLICATION_ERROR was removed during the migration. This functionality is not supported by Snowflake.
Exemplo de código¶
Código de entrada:¶
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-FDM-OR0012¶
As instruções COMMIT e ROLLBACK exigem configuração adequada para funcionar conforme o esperado.
Descrição¶
As instruções COMMIT e ROLLBACK exigem configuração adequada para funcionar conforme o esperado no Snowflake. A seguinte instrução precisa ser executada no Snowflake para simular a funcionalidade correta dessas instruções:
Exemplo de código¶
Código de entrada¶
Código gerado¶
Práticas recomendadas¶
Execute a consulta mencionada na seção de descrição antes de começar a executar seu código.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com.
SSC-FDM-OR0013¶
The cycle clause is not supported in Snowflake.
Nota
Esta FDM está obsoleta. Consulte a documentação SSC-EWI-OR0039.
Descrição¶
Esta mensagem é exibida quando o SnowConvert AI encontra uma consulta com uma cláusula CYCLE. Essa cláusula não é compatível com o Snowflake; portanto, foi transformada em comentário no código.
Esta cláusula marca quando há uma recursão.
Para obter mais detalhes, consulte a documentação sobre a funcionalidade da cláusula.
Exemplo de código¶
Conectar por¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Se houver ciclos na hierarquia de dados, consulte este artigo para lidar com eles.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0014¶
Incompatibilidade de tipo de dados de chave estrangeira.
Descrição¶
Este erro ocorre quando há uma incompatibilidade no tipo de dados de uma chave estrangeira.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Nota
Observe que «MyDb».»MyTable1».COL1 e «MyDb».»MyTable».COL1 são de tipos diferentes e o ERROR é exibido.
Práticas recomendadas¶
Se houver ciclos na hierarquia de dados, consulte este artigo para lidar com eles.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0015¶
Os resultados da transformação de LENGTHB em OCTET_LENGTH podem variar devido ao gerenciamento de memória do DBMS.
Descrição¶
Esse problema ocorre quando há uma invocação da função LENGTHB que retorna o tamanho de uma coluna ou um literal em bytes. Essa função é transformada na função OCTET_LENGTH do Snowflake.
Quando o parâmetro da função é uma coluna, o resultado é o tamanho do valor que a coluna tem. Esse tamanho pode variar entre o Oracle e o Snowflake, e o tipo da coluna desempenha um papel importante no resultado retornado pela função.
Exemplo de código¶
Código de entrada:¶
Consultas¶
Resultado¶
Código gerado:¶
Consultas¶
CREATE OR REPLACE TABLE char_table
(
char_column1 CHAR(15)
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
;
INSERT INTO char_table
VALUES ('Hello world');
SELECT char_column1,
OCTET_LENGTH(char_column1) /*** SSC-FDM-OR0015 - LENGTHB TRANSFORMED TO OCTET_LENGTH RESULTS MAY VARY DUE TO MEMORY MANAGEMENT OF DBMS ***/, LENGTH('Hello world') FROM
char_table;
Resultado¶
Práticas recomendadas¶
Verifique manualmente os tipos de dados utilizados.
Verifique a codificação das colunas utilizadas, pois OCTET_LENGTH pode retornar tamanhos maiores quando a cadeia de caracteres contém pontos de código Unicode.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0016¶
As opções COMMIT e ROLLBACK foram removidas porque o Snowflake não as exige.
Descrição¶
As opções de instrução COMMIT e ROLLBACK estão sendo removidas porque o Snowflake não as exige.
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-FDM-OR0017¶
DBTimezone foi removido para usar o valor padrão do carimbo de data/hora.
Descrição¶
A palavra-chave DBTIMEZONE foi removida da expressão AT TIME ZONE.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
You may need to set the TIMEZONE session parameter to get equal results.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0018¶
Merge statement may not work as expected
Descrição¶
Este aviso é usado para indicar que a instrução de mesclagem do Snowflake pode ter algumas diferenças funcionais em comparação com o Oracle.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Se você estiver obtendo resultados diferentes em comparação com o Oracle, considere o seguinte:
Para priorizar a ordem de execução, acesse o próximo link para obter mais informações.
Execute as instruções DML ignoradas fora (antes ou depois, conforme o caso) da instrução de mesclagem.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0019¶
A saída do quadro de janela pode não ser equivalente.
Descrição¶
Este aviso é adicionado quando uma unidade de quadro de janela ROWS é encontrada no código-fonte.
ROWS funciona usando números de linha físicos para os cálculos, que podem ser diferentes após a migração para a plataforma de destino. A adição manual de cláusulas ORDER BY extras pode ajudar a mitigar ou eliminar esse problema.
Nota
Observe que, conforme afirma a documentação da Oracle:\ «O valor retornado por uma função analítica com um deslocamento lógico é sempre determinístico. No entanto, o valor retornado por uma função analítica com um deslocamento físico pode produzir resultados não determinísticos, a menos que a expressão de ordenação resulte em uma ordenação exclusiva. Você pode ter que especificar várias colunas na cláusula order_by_clause para obter essa ordenação exclusiva.»
De acordo com isso, recomenda-se verificar se a função retornou resultados determinísticos antecipadamente para evitar problemas.
Código de exemplo ¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Verifique se há ordenação determinística das linhas para garantir saídas determinísticas ao executar no Snowflake.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0020¶
PRAGMA EXCEPTION_INIT não é compatível.
Nota
Esta FDM está obsoleta. Consulte a documentação SSC-EWI-OR0051.
Descrição¶
Este aviso é adicionado quando a função PRAGMA EXCEPTION_INIT é invocada dentro de um procedimento. O nome da exceção e o código SQL das exceções são definidos na função RAISE. Quando é convertido para o -Snowflake Scripting, o código SQL é adicionado à declaração da exceção; no entanto, alguns valores de código podem ser inválidos no Snowflake Scripting.
Código de exemplo ¶
Código de entrada:¶
Código gerado:¶
Snowflake Scription¶
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-FDM-OR0021¶
For Loop com número de ponto flutuante como limite pode não se comportar corretamente no Snowflake Scripting.
Descrição¶
O Script Snowflake permite apenas que um INTEGER ou uma expressão que avalia como um INTEGER como um limite para a condição FOR LOOP. Os números flutuantes serão arredondados para cima ou para baixo, alterando o limite original.
O limite inferior será arredondado para o número inteiro mais próximo. Por exemplo:
3.1 -> 3, 6.7 -> 7, 4.5 -> 5
No entanto, o limite superior será truncado para o número inteiro inferior mais próximo. Por exemplo:
3.1 -> 3, 6.7 -> 6, 4.5 -> 4
Script Snowflake¶
Resultado¶
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Reescreva a condição FOR LOOP para que use números inteiros.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0022¶
For Loop com múltiplas condições não é compatível atualmente pelo Snowflake Scripting. Somente a primeira condição é utilizada.
Nota
Esta FDM está obsoleta. Consulte a documentação SSC-EWI-OR0100.
Descrição¶
O Oracle permite várias condições em um único FOR LOOP; no entanto, o Snowflake Scripting permite apenas uma condição por FOR LOOP. Apenas a primeira condição é migrada, e as outras são ignoradas durante a transformação.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Separe
FOR LOOPem loops diferentes ou reescreva a condição.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0023¶
O código de exceção ultrapassa o limite do Snowflake Scripting.
Nota
Esta FDM está obsoleta. Consulte a documentação SSC-EWI-OR0099.
Descrição¶
Este aviso aparece quando um código de erro de declaração de exceção ultrapassa os limites de número de exceção do Snowflake Scripting. O número deve ser um inteiro entre -20000 e -20999.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
CREATE OR REPLACE PROCEDURE procedure_exception ()
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
DECLARE
--** SSC-FDM-OR0023 - EXCEPTION CODE NUMBER EXCEEDS SNOWFLAKE SCRIPTING LIMITS **
my_exception EXCEPTION;
--** SSC-FDM-OR0020 - PRAGMA EXCEPTION_INIT IS NOT SUPPORTED **
PRAGMA EXCEPTION_INIT ( my_exception, -19000 );
BEGIN
NULL;
END;
$$;
Práticas recomendadas¶
Verifique se o código de exceção está dentro dos limites permitidos pelo Snowflake Scripting. Caso contrário, altere-o para outro número de exceção disponível.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0024¶
Colunas da expressão não encontradas.
Nota
Esta FDM está obsoleta. Consulte a documentação SSC-EWI-OR0002.
Descrição¶
Este erro ocorre quando as colunas de uma expressão de seleção não podem ser resolvidas, geralmente quando se refere a um acesso de tipo cuja referência não foi resolvida ou a uma coluna com um tipo definido pelo usuário cujas colunas não foram definidas; como um tipo sem corpo ou um tipo de objeto sem colunas.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Verifique se a definição de tipo referenciada tem colunas.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0025¶
A restrição Not Null não é compatível em procedimentos do Snowflake.
Descrição¶
A restrição da declaração de variável Oracle NOT NULL não é compatível em declarações de variáveis dentro de procedimentos no Snowflake.
Exemplo de código¶
Código de entrada:¶
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-FDM-OR0026¶
Tipo não compatível na operação de conversão.
Nota
Esta FDM está obsoleta. Consulte a documentação SSC-EWI-OR0045.
Descrição¶
Este erro ocorre quando um tipo não é compatível em uma operação de conversão.
Exemplo¶
Código de entrada:¶
Código gerado:¶
EWIs relacionados¶
SSC-EWI-OR0011: O parâmetro de formato não é compatível.
Práticas recomendadas¶
A conversão é convertida em uma função definida pelo usuário (UDF/Stub), para que você possa modificá-la e emular o comportamento da função de conversão.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0027¶
DEFAULT ON CONVERSION ERROR não é compatível.
Nota
Esta FDM está obsoleta. Consulte a documentação SSC-EWI-OR0029.
Descrição¶
Default on conversion error não compatível no Snowflake.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Você pode criar UDF para emular o comportamento do valor
DEFAULTON CONVERSION ERROR.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0028¶
O parâmetro SYS_CONTEXT não é compatível.
Nota
Esta FDM está obsoleta. Consulte a documentação SSC-EWI-OR0031.
Descrição¶
Este erro ocorre quando um parâmetro de função SYS_CONTEXT não é compatível.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
A função é convertida em uma função definida pelo usuário (stub), para que você possa modificá-la e emular o comportamento do parâmetro SYS_CONTEXT.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0029¶
Esta configuração ALTER SESSION não é compatível com o Snowflake.
Descrição¶
Uma cláusula ou configuração da instrução ALTER SESSION não é compatível atualmente.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Para variáveis de sessão, você pode consultar a documentação do Snowflake para encontrar um equivalente.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0030¶
A pseudocoluna ROWID não é compatível com o Snowflake.
Descrição¶
When ROWID is used as a pseudocolumn in a query it is transformed to null to avoid runtime errors and the EWI is added. There is still no transformation to emulate the functionality.
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-FDM-OR0031¶
A cláusula de registro de erros nas instruções DML não é compatível com o Snowflake.
Descrição¶
Este erro é utilizado para avisar que a cláusula error_logging nas instruções DML do Oracle não é compatível com as instruções DML do Snowflake.
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-FDM-OR0032¶
A função StandardHash com parâmetro de entrada que não é cadeia de caracteres gera um resultado diferente no Snowflake.
Descrição¶
Este aviso é utilizado quando a função STANDARD_HASH no Oracle com parâmetro de entrada que não é cadeia de caracteres gera um resultado diferente no Snowflake.
Nota
When the algorithm parameter is a dynamic expression (not a string literal), the function cannot be converted and SSC-EWI-OR0138 is emitted instead.
Exemplo de código¶
Código de entrada:¶
Consulta¶
Resultado¶
Código gerado:¶
Consulta¶
SELECT
--** SSC-FDM-OR0032 - STANDARD HASH FUNCTION WITH INPUT NON-STRING PARAMETER GENERATES A DIFFERENT RESULT IN SNOWFLAKE **
SHA1(1+1)
FROM DUAL;
Resultado¶
SHA1(1+1) |
--------------------------------------------------+
da4b9237bacccdf19c0760cab7aec4a8359010b0 |
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-FDM-OR0033¶
DBMS_RANDOM.VALUE A precisão do pacote integrado é menor no Snowflake.
Descrição
Esta mensagem é exibida quando o SnowConvert AI uma função de pacote integrada do Oracle DBMS_RANDOM.VALUE n. Este aviso indica que o UDF adicionado para emular a funcionalidade tem precisão menor do que a função originaln.
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-FDM-OR0034¶
O valor inicial da sequência com «LIMIT VALUE» não é compatível com o Snowflake.
Nota
Esta FDM está obsoleta. Consulte a documentação SSC-EWI-OR0001.
Descrição¶
Este erro ocorre quando o valor da instrução START WITH é LIMIT VALUE.
In Oracle this clause is used only in ALTER TABLE
STARTWITHLIMIT VALUE, que é específica paraidentity_options, e só pode ser utilizada comALTERTABLEMODIFY. Se você especificarSTARTWITHLIMIT VALUE, o Oracle Database bloqueará a tabela e encontrará o valor máximo da coluna de identidade na tabela (para sequências crescentes) ou o valor mínimo da coluna de identidade (para sequências decrescentes) e atribuirá o valor como a marca d’água alta do gerador de sequência. O próximo valor retornado pelo gerador de sequência será a marca d’água alta +INCREMENTBYintegerpara sequências crescentes ou a marca d’água alta –INCREMENTBYintegerpara sequências decrescentes.
ALTER TABLE ORACLE¶
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-FDM-OR0035¶
Verifique a implementação de UDF DBMS_OUTPUT.PUTLINE.
Descrição¶
Esta mensagem é exibida quando o SnowConvert AI migra uma função de pacote integrada do Oracle DBMS_OUTPUT.PUT_LINE n. Este aviso informa para verificar o UDF adicionado_._
Este EWI existe para informar ao usuário que revise a implementação de DBMS_OUTPUT.PUT_LINE_UDF, onde as seguintes informações serão encontradas:
Aviso
O desempenho pode ser afetado pelo uso deste UDF. Se você quiser começar a registrar informações, remova o comentário da implementação. Observe que isso está usando uma tabela temporária; se você quiser que os dados persistam após o término de uma sessão, remova TEMPORARY do CREATE TABLE.
Após a execução das chamadas de DBMS_OUTPUT.PUT_LINE_UDF, utilize a seguinte consulta para ler todos os logs: SELECT * FROM DBMS_OUTPUT.DBMS_OUTPUT_LOG.
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-FDM-OR0036¶
Parâmetros de pacotes integrados desnecessários
Descrição¶
Esta mensagem é exibida quando o SnowConvert AI migra um procedimento ou uma função de um pacote integrado do Oracle e alguns dos argumentos são removidos da chamada.
Alguns dos parâmetros originais podem não ter equivalente no Snowflake ou podem não ser necessários na versão transformada. Esses parâmetros são removidos do código gerado, mas são preservados na mensagem EWI para que o usuário ainda possa rastreá-los.
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-FDM-OR0037¶
A sintaxe utilizada em select não é compatível com o Snowflake.
Nota
Esta FDM está obsoleta. Consulte a documentação SSC-EWI-OR0004.
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Este aviso ocorre quando uma cláusula em um select não é compatível com o Snowflake. As cláusulas não compatíveis são:
CONTAINERS
SUBQUERY RESTRICTION
HIERARCHIES
EXTERNAL MODIFY
DBLINK
SHARDS
PARTITION
SUBPARTITION
HIERARCHICAL
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-FDM-OR0038¶
O atributo de cursor booleano não é compatível.
Nota
Esta FDM está obsoleta. Consulte a documentação SSC-EWI-OR0128.
Descrição¶
Esta mensagem é utilizada para indicar que um atributo de cursor booleano não é compatível com o SnowScript ou que não há nenhuma transformação que emule essa funcionalidade no SnowScript. A tabela a seguir mostra os atributos de cursor booleano que podem ser emulados:
Atributo Boolean Cursor |
Status |
|---|---|
|
Pode ser emulado |
|
Pode ser emulado |
|
Não suportado |
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-FDM-OR0039¶
Create Type não compatível no Snowflake
Nota
Esta FDM está obsoleta. Consulte a documentação SSC-EWI-OR0007.
Descrição¶
Esta mensagem é adicionada quando uma instrução Create Type não compatível com o Snowflake é utilizada.
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-FDM-OR0040¶
Caracteres numéricos não podem ser alterados no Snowflake. O separador decimal no Snowflake é o caractere de ponto.
Descrição¶
Caracteres numéricos não podem ser alterados no Snowflake. O separador decimal no Snowflake é o caractere de ponto. A instrução de sessão ALTER foi transformada em comentário e um aviso foi adicionado.
Exemplo de código¶
Oracle:¶
Snowflake Scripting:¶
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-FDM-OR0041¶
Pacote integrado não compatível.
Nota
Esta FDM está obsoleta. Consulte a documentação SSC-EWI-OR0076.
Descrição¶
A tradução para pacotes integrados não é compatível atualmente.
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-FDM-OR0042¶
O tipo Date transformado em Timestamp tem um comportamento diferente.
Descrição¶
O tipo Date está sendo transformado em tipo Date ou Timestamp dependendo do sinalizador[–disableDateAsTimestamp](../../../user-guide/snowconvert/command-line-interface/oracle.md#–disabledateascarimbo de data/hora), porque o tipo Date no Snowflake tem um comportamento diferente do Oracle.
Principais diferenças¶
Oráculo DATE |
Snowflake DATE |
|
|---|---|---|
Funcionalidade |
Armazena informações de data e hora |
Armazena apenas informações de data (ano, mês, dia) |
Armazenamento interno |
Número binário que representa os segundos desde a época |
Formato compacto otimizado para datas |
Casos de uso |
Armazenamento de data e hora para fins gerais |
Cenários em que apenas informações de data são necessárias |
Vantagens |
Suporta data e hora |
Armazenamento mais eficiente para datas |
Limitações |
Não é possível armazenar componentes de data e hora separadamente. |
Não armazena informações de tempo |
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-FDM-OR0043¶
Os parâmetros BFILE/BLOB são considerados binários. Um formato pode ser necessário.
Descrição¶
Este erro ocorre quando uma função TO_CLOB é convertida em uma função TO_VARCHAR. Um formato pode ser necessário para os parâmetros BFILE/BLOB.
Exemplo de código¶
Código de entrada: ¶
Código gerado:¶
Práticas recomendadas¶
Verifique se as saídas no código de entrada e no código convertido são equivalentes e adicione um parâmetro de formato, se necessário.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0044¶
O parâmetro de correspondência REGEXP_LIKE_UDF pode não se comportar corretamente.
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Este aviso aparece quando a condição REGEXP_LIKE do Oracle vem com o terceiro parâmetro (parâmetro de correspondência). O motivo para adicionar o aviso é que o REGEXP_LIKE_UDF utilizado para substituir o REGEXP_LIKE não reconhece todos os caracteres utilizados pelo parâmetro de correspondência; portanto, o resultado da consulta no Snowflake pode não ser equivalente ao do Oracle.
Exemplo de código¶
Código de entrada Oracle:¶
Código gerado:¶
When the
REGEXP_LIKEcondition comes with one of the characters that are not supported by the user-defined function, maybe a possible solution is to change the regular expression to simulate the behavior of the missing character in the match parameter. To know more about the character not supported go to REGEXP_LIKE_UDF documentation.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0045¶
As cláusulas de partições são tratadas pelo Snowflake.
Nota
Esta FDM está obsoleta. Consulte a documentação SSC-EWI-OR0010.
Descrição¶
Este aviso aparece quando as cláusulas PARTITION e SUBPARTITION aparecem em uma consulta. O Snowflake lida com partições automaticamente.
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-FDM-OR0046¶
A restrição de subconsulta não é possível no Snowflake.
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Este aviso ocorre quando uma restrição de subconsulta aparece em uma instrução SELECT.
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-FDM-OR0047¶
Pode ser necessário definir um formato TimeStampOutput.
Descrição¶
O parâmetro de sessão TIMESTAMP_OUTPUT_FORMAT pode precisar ser definido como «DD-MON-YY HH24.MI.SS.FF AM TZH:TZM» para equivalência de saída de carimbo de data/hora.
Exemplo de código¶
Código de entrada: ¶
Exemplo de saída TIMESTAMP padrão no Oracle¶
Saída
13-JAN-21 04.18.37.288656 PM +00:00
Código gerado:¶
Exemplo de saída TIMESTAMP padrão no Snowflake¶
Saída
2021-01-13 08:18:19.720 -080
Práticas recomendadas¶
Para alterar o formato de saída do carimbo de data/hora no Snowflake, use a seguinte consulta:
ALTER SESSION SET TIMESTAMP_OUTPUT_FORMAT = 'DD-MON-YY HH24.MI.SS.FF AM TZH:TZM';Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0048¶
Date or timestamp output format has to be set
Descrição¶
When SnowConvert AI transforms a DATE or TIMESTAMP to VARCHAR (for example, in a DEFAULT clause using SYSDATE or TRUNC(CURRENT_DATE())), the output depends on the OUTPUT_FORMAT and TIMESTAMP_OUTPUT_FORMAT session parameters. These may not match Oracle’s default format. Set the session parameters to match the Oracle values for equivalent output.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Set TIMESTAMP_OUTPUT_FORMAT and OUTPUT_FORMAT session parameters to match Oracle’s NLS format (e.g., “DD-MON-YY HH24.MI.SS.FF AM TZH:TZM”).
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0049¶
A função LAG poderá falhar se o tipo do valor padrão for diferente do tipo da expressão.
Descrição¶
No Oracle, a função LAG converte automaticamente o tipo de dados do valor padrão para corresponder ao tipo da expressão. O Snowflake, no entanto, não realiza essa conversão implícita. Portanto, um aviso é emitido para indicar que a função LAG poderá falhar se os tipos de dados forem incompatíveis.
Exemplo de código¶
Código de entrada:¶
Código gerado:¶
Práticas recomendadas¶
Verifique se o tipo de dados do valor padrão corresponde ao tipo de dados da expressão na função
LAG. Se forem diferentes, converta explicitamente o valor padrão para o tipo de dados da expressão.Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-FDM-OR0050¶
Exceções com parâmetros NOCOPY podem levar à inconsistência de dados.
Descrição¶
No Oracle PL/SQL, a palavra-chave NOCOPY é uma dica de otimização para parâmetros de procedimento OUT e IN OUT. Por padrão, o Oracle passa esses parâmetros por valor, criando uma cópia cara dos dados durante a chamada e copiando-a de volta após a conclusão. Isso pode causar sobrecarga significativa de desempenho para grandes estruturas de dados.
NOCOPY instrui o Oracle a passar por referência, permitindo que o procedimento modifique diretamente os dados originais. Isso elimina a sobrecarga de cópia e melhora o desempenho. No entanto, as alterações são imediatas e não serão revertidas implicitamente se ocorrer uma exceção não tratada dentro do procedimento.
Portanto, vamos remover a opção de parâmetros NOCOPY e adicionar FDM. Isso ocorre porque a execução do procedimento termina ao atingir uma exceção, impedindo que a instrução RETURN seja alcançada. Como resultado, a variável no bloco de declaração do autor da chamada retém seus valores iniciais, pois o procedimento não consegue retornar um novo valor para atribuiçã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