SnowConvert: Funções internas

Funções

Oracle

Snowflake

Notas

ABS

ABS

ACOS

ACOS

ADD_MONTHS

ADD_MONTHS

ANY_VALUE

ANY_VALUE

Um aviso está sendo adicionado para indicar que a contraparte do Snowflake pode não ser funcionalmente equivalente.

APPROX_COUNT

*a ser definido

APPROX_COUNT_DISTINCT

APPROX_COUNT_DISTINCT

APPROX_COUNT_DISTINCT_AGG

*a ser definido

APPROX_COUNT_DISTINCT_DETAIL

*a ser definido

APPROX_MEDIAN

*a ser definido

APPROX_PERCENTILE

APPROX_PERCENTILE

APPROX_PERCENTILE_AGG

*a ser definido

APPROX_PERCENTILE_DETAIL

*a ser definido

APPROX_RANK

*a ser definido

APPROX_SUM

*a ser definido

ASCII

ASCII

ASCIISTR

*a ser definido

ASIN

ASIN

ATAN

ATAN

ATAN2

ATAN2

AVG

AVG

BFILENAME

*a ser definido

BIN_TO_NUM

*a ser definido

BITAND

BITAND

BIT_AND_AGG

BITAND_AGG

Um aviso está sendo adicionado para indicar que a contraparte do Snowflake pode não ser funcionalmente equivalente.

BITMAP_BIT_POSITION

BITMAP_BIT_POSITION

BITMAP_BUCKET_NUMBER

BITMAP_BUCKET_NUMBER

BITMAP_CONSTRUCT___AGG

BITMAP_CONSTRUCT___AGG

Um aviso está sendo adicionado para indicar que a contraparte do Snowflake pode não ser funcionalmente equivalente.

BITMAP_COUNT

BITMAP_BIT_COUNT

Um aviso está sendo adicionado para indicar que a contraparte do Snowflake pode não ser funcionalmente equivalente.

BITMAP_OR_AGG

BITMAP_OR___AGG

Um aviso está sendo adicionado para indicar que a contraparte do Snowflake pode não ser funcionalmente equivalente.

BIT_OR_AGG

BIT_OR_AGG

Um aviso está sendo adicionado para indicar que a contraparte do Snowflake pode não ser funcionalmente equivalente.

BIT_XOR_AGG

BIT_XOR_AGG

Um aviso está sendo adicionado para indicar que a contraparte do Snowflake pode não ser funcionalmente equivalente.

CARDINALITY

*a ser definido

CAST

<p>CAST</p><p>TO_DATE</p><p>TO_NUMBER</p><p>TO_TIMESTAMP</p><p>Não suportado</p>

A função é convertida em um esboço _ “CAST_STUB” _ e gera um erro, quando vem com uma das seguintes instruções não suportadas: _ “DEFAULT ON CONVERSION ERROR” _ ou _ “MULTISET” _. Além disso, ele é convertido em um stub e gera um erro se o tipo de dados não for compatível. A função é convertida para a função _ “TO_NUMBER” _ quando a expressão a ser convertida é do tipo _ number _ e gera um erro indicando que não é possível fazer a conversão explícita. A função é convertida para a função _ “TO_DATE” _ quando a expressão a ser convertida é do tipo _ date _ e gera um erro indicando que não é possível fazer a conversão explícita. A função é convertida para a função _ “TO_TIMESTAMP” _ quando a expressão a ser convertida é do tipo _ timestamp _ e gera um erro indicando que não é possível fazer a conversão explícita.

CEIL

CEIL

CHARTOROWID

*a ser definido

CHECKSUM

*a ser definido

CHR

CHR

a instrução USING NCHAR_CS _ não é compatível com a função equivalente do Snowflake. A cláusula foi removida.

CLUSTER_DETAILS

*a ser definido

CLUSTER_DISTANCE

*a ser definido

CLUSTER_ID

*a ser definido

CLUSTER_PROBABILITY

*a ser definido

CLUSTER_SET

*a ser definido

COALESCE

COALESCE

COLLATION

COLLATION

COLLECT

*a ser definido

COMPOSE

*a ser definido

CON_DBID_TO_ID

*a ser definido

CON_GUID_TO_ID

*a ser definido

CON_NAME_TO_ID

*a ser definido

CON_UID_TO_ID

*a ser definido

CONCAT

CONCAT

Cada parâmetro de expressão estará dentro de uma função _ NVL(expr, “ “) _ para evitar um erro caso uma das expressões seja nula.

CONVERT

*a ser definido

CORR

CORR

Um aviso está sendo adicionado para indicar que a contraparte do Snowflake pode não ser funcionalmente equivalente.

CORR_S

*a ser definido

CORR_K

*a ser definido

COS

COS

COSH

COSH

COUNT

COUNT

COVAR_POP

COVAR_POP

Um aviso está sendo adicionado para indicar que a contraparte do Snowflake pode não ser funcionalmente equivalente.

COVAR_SAMP

COVAR_SAMP

Um aviso está sendo adicionado para indicar que a contraparte do Snowflake pode não ser funcionalmente equivalente.

CUBE_TABLE

Sem suporte

Convertido em um stub _ “CUBE_TABLE_STUB” _ e um erro é adicionado.

CUME_DIST

CUME_DIST

Um aviso está sendo adicionado para indicar que a contraparte do Snowflake pode não ser funcionalmente equivalente.

CURRENT_DATE

CURRENT_DATE

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP

CV

*a ser definido

DATAOBJ_TO_MAT_PARTITION

*a ser definido

DATAOBJ_TO_PARTITION

*a ser definido

DBTIMEZONE

*a ser definido

DECODE

DECODE

DECOMPOSE

*a ser definido

DENSE_RANK

DENSE_RANK

Há dois tipos de sintaxe: _ sintaxe agregada _ e _ sintaxe analítica _. A _ sintaxe agregada _ não é compatível e um erro foi adicionado. A sintaxe analítica é compatível, mas a palavra-chave _ “SIBLINGS” _ é removida da _ cláusula _ “order by” _ e um aviso é adicionado.

DEPTH

*a ser definido

DEREF

*a ser definido

DUMP

*a ser definido

EMPTY_BLOB

*a ser definido

EMPTY_CLOB

*a ser definido

EXISTSNODE

*a ser definido

EXP

EXP

EXTRACT (datetime)

<p>EXTRACT (datetime)</p><p>Não suportado</p>

Mantida como uma função _ EXTRACT _, mas emite um aviso quando a função tem _ “MINUTE” _ ou _ “TIMEZONE_MINUTE” _ como o primeiro parâmetro de palavra-chave. Convertido em um stub _ “EXTRACT_STUB” _ e gera um erro quando o primeiro parâmetro de palavra-chave é _ “TIMEZOME_REGION” _ ou _ “TIMEZONE_ABBR” _

EXTRACT (XML)

Sem suporte

Não há suporte para a função relacionada a XML. Ele é convertido em um stub _ “EXTRACT_STUB” _ e um erro é adicionado. Consulte o link a seguir sobre como lidar com o carregamento para XML:

EXTRACTVALUE

Sem suporte

Convertido em um stub _ “EXTRACTVALUE_STUB” _ e um erro é adicionado.

FEATURE_COMPARE

*a ser definido

FEATURE_DETAILS

*a ser definido

FEATURE_ID

*a ser definido

FEATURE_SET

*a ser definido

FEATURE_VALUE

*a ser definido

FIRST

Sem suporte

A instrução usada para indicar que somente os valores first ou last da _ função agregada _ serão retornados não é suportada. Emite um erro.

FIRST_VALUE

FIRST_VALUE

Um aviso está sendo adicionado para indicar que a contraparte do Snowflake pode não ser funcionalmente equivalente.

FLOOR

FLOOR

FROM_TZ

*a ser definido

GREATEST

GREATEST

GROUP_ID

*a ser definido

GROUPING

GROUPING

GROUPING_ID

GROUPING_ID

HEXTORAW

*a ser definido

INITCAP

INITCAP

INSTR

POSITION

A ordem do parâmetro _ “string” _ e do parâmetro _ “substring” _ é invertida. Além disso, o parâmetro _”occurrence” _ foi removido porque não é compatível e um aviso foi adicionado.

ITERATION_NUMBER

*a ser definido

JSON_ARRAY

*a ser definido

JSON_ARRAYAGG

*a ser definido

JSON

*a ser definido

JSON_MERGE_PATCH

*a ser definido

JSON_OBJECT

*a ser definido

JSON_OBJECTAGG

*a ser definido

JSON_QUERY

*a ser definido

JSON_SCALAR

*a ser definido

JSON_SERIALIZE

*a ser definido

JSON_TABLE

Sem suporte

Emite um erro: _ JSON_TABLE IS NOT SUPPORTED. _

JSON_TRANSFORM

*a ser definido

JSON_VALUE

JSON_VALUE_UDF

KURTOSIS_POP

*a ser definido

KURTOSIS_SAMP

*a ser definido

LAG

LAG

Quando a expressão de valor vem com a instrução _ RESPECT | IGNORE NULLS, _ a instrução é movida para fora do parêntese para corresponder à gramática do Snowflake.

LAST

Sem suporte

A instrução usada para indicar que somente os valores first ou last da _ função agregada _ serão retornados não é suportada. Emite um erro.

LAST_DAY

LAST_DAY

LAST_VALUE

LAST_VALUE

Um aviso está sendo adicionado para indicar que a contraparte do Snowflake pode não ser funcionalmente equivalente.

LEAD

LEAD

Quando a expressão de valor vem com a instrução _ RESPECT | IGNORE NULLS, _ a instrução é movida para fora do parêntese para corresponder à gramática do Snowflake.

LEAST

LEAST

LENGTH

LENGTH

LISTAGG

LISTAGG

A cláusula _ overflow _ é removida da função.

LN

LN

LNNVL

*a ser definido

LOCALTIMESTAMP

LOCALTIMESTAMP

LOG

LOG

LOWER

LOWER

LPAD

LPAD

LTRIM

LTRIM

MAKE_REF

*a ser definido

MAX

MAX

MEDIAN

MEDIAN

MIN

MIN

MOD

MOD

MONTHS_BETWEEN

MONTHS_BETWEEN_UDF

Convertido em uma _ função definida pelo usuário _.

NANVL

*a ser definido

NCHR

*a ser definido

NEW_TIME

*a ser definido

NEXT_DAY

NEXT_DAY

NLS_CHARSET_DESCL_LEN

*a ser definido

NLS_CHARSET_ID

*a ser definido

NLS_CHARSET_NAME

*a ser definido

NLS_COLLATION_ID

*a ser definido

NLS_COLLATION_NAME

*a ser definido

NLS_INITCAP

*a ser definido

NLS_LOWER

*a ser definido

NLS_UPPER

*a ser definido

NLSSORT

<p>COLLATE</p><p>Não suportado</p>

Quando a função está fora de uma cláusula _ “where” _ ou _ “order by” _, ela não é compatível e é convertida no stub _ “NLSSORT_STUB” _ e um erro é adicionado. Caso contrário, se a função estiver dentro de uma cláusula _ “where” _ ou _ “order by” _, ela será convertida para a função _ COLLATE _.

NTH_VALUE

NTH_VALUE

NTILE

NTILE

NULLIF

NULLIF

NUMTODSINTERVAL

Sem suporte

Embora a função em si não seja compatível, alguns usos podem ser migrados manualmente. Por exemplo, DATEADD pode ser usado para migrar manualmente uma soma entre uma data/carimbo de data/hora e essa função.

NUMTOYMINTERVAL

Sem suporte

Embora a função em si não seja compatível, alguns usos podem ser migrados manualmente. Por exemplo, DATEADD pode ser usado para migrar manualmente uma soma entre uma data/carimbo de data/hora e essa função.

NVL

NVL

NVL2

NVL2

ORA_DM_PARTITION_NAME

*a ser definido

ORA_DST_AFFECTED

*a ser definido

ORA_DST_CONVERTED

*a ser definido

ORA_DST_ERROR

*a ser definido

ORA_HASH

Sem suporte

Convertido em um stub _ “ORA_HASH_STUB” _ e um erro é adicionado.

PATH

*a ser definido

PERCENT_RANK

PERCENT_RANK

Um aviso está sendo adicionado para indicar que a contraparte do Snowflake pode não ser funcionalmente equivalente.

PERCENTILE_CONT

PERCENTILE_CONT

PERCENTILE_DISC

PERCENTILE_DISC

POWER

POWER

POWERMULTISET

*a ser definido

POWERMULTISET_BY_CARDINALITY

*a ser definido

PREDICTION

*a ser definido

PREDICTION_BOUNDS

*a ser definido

PREDICTION_COST

*a ser definido

PREDICTION_DETAILS

*a ser definido

PREDICTION_PROBABILITY

*a ser definido

PREDICTION_SET

*a ser definido

PRESENTNNV

*a ser definido

PRESENTV

*a ser definido

PREVIOUS

*a ser definido

RANK

RANK

Há dois tipos de sintaxe: _ sintaxe agregada _ e _ sintaxe analítica _. A _ sintaxe agregada _ não é compatível e um erro foi adicionado. A sintaxe analítica é compatível, mas a palavra-chave _ “SIBLINGS” _ é removida da _ cláusula _ “order by” _ e um aviso é adicionado.

RATIO_TO_REPORT

RATIO_TO_REPORT

RAWTOHEX

*a ser definido

RAWTONHEX

*a ser definido

REF

*a ser definido

REFTOHEX

*a ser definido

REGEXP_COUNT

REGEXP_COUNT

REGEXP_INSTR

REGEXP_INSTR

REGEXP_REPLACE

REGEXP_REPLACE

<p>No parâmetro <em>replace_string</em> (o terceiro) está sendo adicionado um símbolo “” extra para escapar o outro. No parâmetro <em>match_param</em> (o último), a equivalência funciona da seguinte forma:<br>”c” -> “c” <em>especifica distinção de maiúsculas e minúsculas</em><br>”i” -> “i” <em>especifica distinção de minúsculas e minúsculas</em><br>”n” -> “s” <em>permite que o ponto (.), que é o caractere match-any-character, para corresponder ao caractere newline</em><br>”m” -> “m” <em>trata a cadeia de caracteres de origem como múltiplas linhas</em><br>”x” -> “e” <em>ignora caracteres de espaço em branco</em></p>

REGEXP_SUBSTR

REGEXP_SUBSTR

<p>No parâmetro <em>replace_string</em> (o segundo) está sendo adicionado um símbolo “” extra para escapar o outro. No parâmetro <em>match_param</em>, a equivalência funciona da seguinte forma:<br>”c” -> “c” <em>especifica distinção de maiúsculas e minúsculas</em><br>”i” -> “i” <em>especifica distinção de minúsculas e minúsculas</em><br>”n” -> “s” <em>permite que o ponto (.), que é o caractere match-any-character, para corresponder ao caractere newline</em><br>”m” -> “m” <em>trata a cadeia de caracteres de origem como múltiplas linhas</em><br>”x” -> “e” <em>ignora caracteres de espaço em branco</em></p>

REGR

REGR

Um aviso está sendo adicionado para indicar que a contraparte do Snowflake pode não ser funcionalmente equivalente.

REMAINDER

*a ser definido

REPLACE

REPLACE

REVERSE

REVERSE

ROUND

ROUND

ROUND_TIES_TO_EVEN

*a ser definido

ROW_NUMBER

ROW_NUMBER

RPAD

RPAD

ROWIDTOCHAR

*a ser definido

ROWIDTONCHAR

*a ser definido

RTRIM

RTRIM

SCN_TO_TIMESTAMP

*a ser definido

SESSIONTIMEZONE

*a ser definido

SET

*a ser definido

SIGN

SIGN

SINH

SINH

SKEWNESS_POP

*a ser definido

SKEWNESS_SAMP

*a ser definido

SOUNDEX

SOUNDEX

SQRT

SQRT

STANDARD_HASH

*a ser definido

STATS_BINOMIAL_TEST

*a ser definido

STATS_CROSSTAB

*a ser definido

STATS_F_TEST

*a ser definido

STATS_KS_TEST

*a ser definido

STATS_MODE

*a ser definido

STATS_MW_TEST

*a ser definido

STATS_ONE_WAY_ANOVA

*a ser definido

STATS_T_TEST

*a ser definido

STATS_WSR_TEST

*a ser definido

STDDEV

STDDEV

STDDEV_POP

STDDEV_POP

STDDEV_SAMP

STDDEV_SAMP

SUBSTR

SUBSTR

Todos os tipos de SUBSTR _ (SUBSTRB, SUBSTRC, SUBSTR2, SUBSTR4) _ estão sendo convertidos para SUBSTR

SUM

SUM

SYS_CONNECT_BY_PATH

*a ser definido

SYS_CONTEXT

<p>CURRENT_USER CURRENT_SCHEMA CURRENT_DATABASE IS_ROLE_IN_SESSION CURRENT_CLIENT CURRENT_SESSION<br>Não suportado</p>


Dependendo dos parâmetros da função SYS_CONTEXT, ela é convertida em uma das funções especificadas.
”CURRENT_SCHEMA” convertido para CURRENT_SCHEMA()

”CURRENT_USER” convertido para CURRENT_USER()

”DB_NAME” convertido para CURRENT_DATABASE()

”ISDBA” convertido para IS_ROLE_IN_SESSION(“DBA”)

”SERVICE_NAME” convertido para CURRENT_CLIENT()

”SESSIONID” convertido para CURRENT_SESSION()

”GUEST” convertido para IS_ROLE_IN_SESSION(“GUEST”)

”SESSION_USER” convertido para CURRENT_USER()

”AUTHENTICATED_IDENTITY” convertido para CURENT_USER()


Quando um parâmetro não é suportado, ele é convertido para stub ”SYS_CONTEXT_STUB”

SYS_DBURIGEN

*a ser definido

SYS_EXTRACT_UTC

*a ser definido

SYS_GUID

*a ser definido

SYS_OP_ZONE_ID

*a ser definido

SYS_TYPEID

*a ser definido

SYS_XMLAGG

*a ser definido

SYS_XMLGEN

*a ser definido

TAN

TAN

TANH

TANH

TIMESTAMP_TO_SCN

*a ser definido

TO_APPROX_COUNT_DISTINCT

*a ser definido

TO_APPROX_PERCENTILE

*a ser definido

TO_BINARY_DOUBLE

*a ser definido

TO_BINARY_FLOAT

*a ser definido

TO_BLOB (bfile)

*a ser definido

TO_BLOB (raw)

*a ser definido

TO_CHAR (character)

TO_CHAR

TO_CHAR (datetime)

<p>Expressão condicional TO_CHAR(datetime)(CASE)<br>não suportada</p>

Dependendo do parâmetro de formato, a função é convertida em expressão condicional _ (CASE WHEN) _ ou em uma _ função definida pelo usuário _ ou mantida como _ TO_CHAR(datetime) _. Às vezes, a função estará entre outras funções para obter um resultado equivalente. Quando a função não é compatível, ela é convertida em stub _ “TO_CHAR_STUB” _. Acesse To_Char(datetime) para obter mais informações sobre essa função.

TO_CHAR (number)

TO_CHAR (number)

Se o parâmetro _ numeric _ for do tipo _ double _ ou _ float _, a função será comentada e um erro será adicionado. Quando você chega a um formato não suportado, o parâmetro _ format _ é removido da função e um erro é adicionado. Formatos não suportados: _ C L PR RN TM U V _. Se a função tiver o parâmetro _ nlsparam _, ele será removido da função e um erro será adicionado.

TO_CLOB ( bfile | blob )

TO_VARCHAR

Emite um aviso para indicar que os parâmetros _ bfile/blob _ são considerados _ binary _. Também apresenta um erro quando a função tem mais de um parâmetro.

TO_CLOB (character)

TO_VARCHAR

Emite um aviso para indicar que os parâmetros _ bfile/blob _ são considerados _ binary _. Também apresenta um erro quando a função tem mais de um parâmetro.

TO_DATE

TO_DATE

<p>Quando você recebe um <em>formato</em> não compatível, a função é comentada e um erro é adicionado. Formatos não suportados: <em>FXFMDD-MON-YYYY</em><br><em>J</em><br><em>DDD</em><br><em>MONTH</em><br><em>RM</em><br><em>DD-MON-RR</em><br><em>DD-MON-RRRR</em><br><em>SSSSS</em><br><em>YYYY</em><br><em>YYY</em><br><em>Y</em></p>

TO_DSINTERVAL

*a ser definido

TO_LOB

*a ser definido

TO_MULTI_BYTE

*a ser definido

TO_NCHAR

*a ser definido

TO_NCHAR (datetime)

*a ser definido

TO_NCLOB

*a ser definido

TO_NUMBER

<p>TO_NUMBER</p><p>Não suportado</p>

<p>A instrução “<em>DEFAULT integer ON CONVERSION ERROR”</em> é removida e gera um erro,</p><p>Convertido em um stub <em>TO_NUMBER_STUB</em> e um erro é adicionado quando o parâmetro <em>”format”</em> não é compatível e também quando a função tem o parâmetro <em>”nlsparam”</em>.</p>

TO_SINGLE_BYTE

*a ser definido

TO_TIMESTAMP

TO_DATE

<p>Quando você recebe um <em>formato</em> não compatível, a função é comentada e um erro é adicionado. Formatos não suportados: <em>FXFMDD-MON-YYYY</em><br><em>J</em><br><em>DDD</em><br><em>MONTH</em><br><em>RM</em><br><em>DD-MON-RR</em><br><em>DD-MON-RRRR</em><br><em>SSSSS</em><br><em>YYYY</em><br><em>YYY</em><br><em>Y</em></p>

TO_TIMESTAMP_TZ

TO_DATE

<p>Quando você recebe um <em>formato</em> não compatível, a função é comentada e um erro é adicionado. Formatos não suportados: <em>FXFMDD-MON-YYYY</em><br><em>J</em><br><em>DDD</em><br><em>MONTH</em><br><em>RM</em><br><em>DD-MON-RR</em><br><em>DD-MON-RRRR</em><br><em>SSSSS</em><br><em>YYYY</em><br><em>YYY</em><br><em>Y</em></p>

TO_UTC_TIMESTAMP_TZ

*a ser definido

TO_YMINTERVAL

*a ser definido

TRANSLATE

TRANSLATE

TRANSLATE_USING

TRANSLATE_USING

TREAT

*a ser definido

TRIM

TRIM

LTRIM

RTRIM

<p>Dependendo do primeiro parâmetro, ele será convertido para:<br><em>LEADING</em> palavra-chave -> <em>LTRIM TRAILING</em> palavra-chave -> <em>RTRIM BOTH</em> palavra-chave -> <em>TRIM</em><br>Nenhuma dessas palavras-chave -> manter como função TRIM. Além disso, a ordem do parâmetro <em>”trimsource”</em> e do parâmetro “trimcharacter” é invertida, e a palavra-chave <em>FROM</em> é removida da função.</p>

TRUNC (date)

TRUNC(date)

A expressão _”DAY” _ é adicionada como um segundo parâmetro da função.

TRUNC (number)

TRUNC(number)

TZ_OFFSET

*a ser definido

UID

*a ser definido

UNISTR

TO_VARCHAR(expr)

No parâmetro _ expr _ está sendo adicionada a letra “u” após cada símbolo “'.

UPPER

UPPER

USER

*a ser definido

USERNV

*a ser definido

VALIDATE_CONVERSION

*a ser definido

VALUE

Sem suporte

Convertido em um stub _ “VALUE_STUB” _ e um erro é adicionado.

VAR_POP

VAR_POP

VAR_SAMP

VAR_SAMP

VARIANCE

VARIANCE

Um aviso está sendo adicionado para indicar que a contraparte do Snowflake pode não ser funcionalmente equivalente.

VSIZE

*a ser definido

WIDTH_BUCKET

WIDTH_BUCKET

XMLAGG

*a ser definido

XMLCAST

*a ser definido

XMLCDATA

*a ser definido

XMLCOLATVAL

*a ser definido

XMLCOMMENT

*a ser definido

XMLCONCAT

*a ser definido

XMLDIFF

*a ser definido

XMLELEMENT

*a ser definido

XMLEXISTS

*a ser definido

XMLFOREST

*a ser definido

XMLISVALID

*a ser definido

XMLPARSE

*a ser definido

XMLPATCH

*a ser definido

XMLPI

*a ser definido

XMLQUERY

Sem suporte

XMLSEQUENCE

Sem suporte

Convertido em um stub _ “XMLSEQUENCE_STUB” _ e um erro é adicionado.

XMLSERIALIZE

*a ser definido

XMLTABLE

Sem suporte

Emite um erro: _ XMLTABLE IS NOT SUPPORTED _.

XMLTRANSFORM

*a ser definido

Detalhes das funções.

To_Char(datetime)

De acordo com o parâmetro de formato, a função será convertida para:

Formato

Conversão

<p>AD ou BC</p><p>A.D. ou B.C.</p>


A função será convertida em uma expressão condicional (CASE)
em que o formato é adicionado como resultado da condição ”when”.
Por exemplo:
from: To_Char(DATE “1998-12-25”, “AD”)
to: CASE WHEN YEAR(DATE “1998-12-25”) < 0 THEN”BC”

CC ou SCC

<p>A função será convertida em uma expressão condicional <em></em> onde<br>o corpo da função original é adicionado como uma condição <em>when</em>, mas estará entre</p><p>a função <em>MOD</em>, depois disso a função original é adicionada como um resultado <em>then</em>, mas<br>contido por uma função <em>SUBSTR</em>. <br>Por exemplo:</p><p><code>from: To_Char(DATE “1998-12-25”,”CC”)</code><br><code>to: CASE WHEN MOD(YEAR(DATE “1998-12-25”), 100) = 0</code><br><code>THEN SUBSTR(TO_CHAR(DATE “1998-12-25”, “YYYY”), 1, 2)</code></p>

D

<p>A função será convertida para o equivalente da função do Snowflake, mas<br>o corpo da função estará entre a parte do datetime <em>DAYOFWEEK</em>.</p><p>Por exemplo:</p><p><code>from: To_Char(DATE “1998-12-25”,”D”)</code></p><p><code>to: TO_CHAR(DAYOFWEEK(DATE “1998-12-25”) + 1)</code></p>

DAY

<p>A função será convertida em uma função definida pelo usuário <em></em> dentro de uma função <em>UPPER</em><br>.<br>Por exemplo:<br><code>from: To_Char(DATE “1998-12-25”,”DAY”)</code></p><p><code>to: UPPER(SNOWCONVERT.PUBLIC.FULL_DAY_NAME_UDF(DATE “1998-12-25”))</code></p>

DDD

<p>A função será convertida para o equivalente da função do Snowflake, mas<br>o corpo da função ficará entre a parte do datetime <em>DAYOFYEAR</em>.</p><p>Por exemplo:<br><code>from: To_Char(DATE “1998-12-25”,”DDD”)</code></p><p><code>to: TO_CHAR(DAYOFYEAR(DATE “1998-12-25”))</code></p>

DD-MON-RR

<p>A função será convertida para a função do Snowflake equivalente, mantendo o corpo da função</p><p>, mas alterando o formato para: <em>”DD-MON-YY”.</em></p><p>Por exemplo:</p><p><code>from: To_Char(TIMESTAMP “1998-12-25 09:26:50.12”,”DD-MON-RR”)</code></p><p><code>to: To_Char(TIMESTAMP “1998-12-25 09:26:50.12”,”DD-MON-YY”)</code></p>

DL

<p>A função será convertida em uma função definida pelo usuário <em></em> mais o operador <em>”OR”</em> <br>mais o equivalente do Snowflake mantendo o corpo da função, mas alterando o formato</p><p>para: <em>”, MMM DD, YYYY</em></p><p>Por exemplo:</p><p><code>from: To_Char(DATE “1998-12-25”,”DL”)</code></p><p><code>to: SNOWCONVERT.PUBLIC.FULL_DAY_NAME_UDF(DATE “1998-12-25”)</code></p>

DS

<p>A função será convertida em uma combinação da função do Snowflake</p><p>equivalente dentro da função <em>LTRIM</em> e o equivalente da função do Snowflake.</p><p>Todas as partes combinadas com o operador <em>”OR”</em>.</p><p>Por exemplo:</p><p><code>from: To_Char(DATE “1998-12-25”,”DS”)</code></p><p><code>to: LTRIM(TO_CHAR(DATE “1998-12-25”, “MM”), “0”)</code></p>

DY

<p>A função será convertida para o equivalente da função do Snowflake</p><p>dentro da função <em>UPPER</em>.</p><p>Por exemplo:<br><code>from: To_Char(DATE “1998-12-25”,”DY”)</code><br><code>to: UPPER(TO_CHAR(DATE “1998-12-25”, “DY”))</code></p>

I

<p>A função será convertida no equivalente à função do Snowflake</p><p>dentro da função <em>SUBSTR</em>.</p><p>Por exemplo:</p><p><code>from: To_Char(DATE “1998-12-25”,”I”)</code></p><p><code>to: SUBSTR(TO_CHAR(DATE “1998-12-25”, “YYYY”), 4, 1)</code></p>

IW

<p>A função será convertida para o equivalente da função do Snowflake, mas<br>o corpo da função ficará entre a parte do datetime <em>WEEKISO</em>.</p><p>Por exemplo:</p><p><code>from:To_Char(DATE “1998-12-25”,”IW”)</code></p><p><code>to: TO_CHAR(WEEKISO(DATE “1998-12-25”))</code></p>

IY

<p>A função será convertida para a função do Snowflake equivalente, mantendo o corpo da função</p><p>, mas alterando o formato para: <em>”YY”.</em></p><p>Por exemplo:</p><p><code>from:To_Char(DATE “1998-12-25”, “IY”)</code></p><p><code>to: TO_CHAR(DATE “1998-12-25”, “YY”)</code></p>

IYY

<p>A função será convertida para o equivalente da função do Snowflake</p><p>dentro da função <em>SUBSTR</em> e alterará o formato para: <em>”YYYY”</em>.</p><p>Por exemplo:</p><p><code>from: To_Char(DATE “1998-12-25”,”IYY”)</code></p><p><code>to: SUBSTR(TO_CHAR(DATE “1998-12-25”, “YYYY”), 2, 3)</code></p>

IYYY

<p>A função será convertida para a função do Snowflake equivalente, mantendo o corpo da função</p><p>, mas alterando o formato para: <em>”YYYY”.</em></p><p>Por exemplo:</p><p><code>from:To_Char(DATE “1998-12-25”, “IYYY”)</code></p><p><code>to: TO_CHAR(DATE “1998-12-25”, “YYYY”)</code></p>

J

<p>A função será convertida em uma expressão condicional com “B.C.” como resultado <em>”then”</em></p><p>e <em>”A.D.</em>” como resultado else.</p><p>Por exemplo:</p><p><code>from: To_Char(DATE “1998-12-25”,”J”)</code></p><p><code>to:</code> DATE_TO_JULIANDAYS_UDF(DATE “1998-12-25”)</p>

MI

<p>A função será convertida para o equivalente no Snowflake. Se o argumento da função</p><p>for <em>SYSDATE</em>, ele será alterado para <em>CURRENT_TIMESTAMP</em>, caso contrário,</p><p>se for do tipo data, a função retornará nulo.</p><p>Por exemplo:</p><p><code>from: To_Char(SYSDATE, “MI”);</code></p><p><code>to: To_Char(CURRENT_TIMESTAMP, “MI”)</code></p>

MON

<p>A função será convertida para o equivalente da função do Snowflake<br>dentro da função <em>UPPER</em>.</p><p>Por exemplo:</p><p><code>from: To_Char(DATE “1998-12-25”,”MON”)</code></p><p><code>to: UPPER(TO_CHAR(DATE “1998-12-25”, “MON”))</code></p>

MONTH

<p>A função será convertida para o equivalente da função do Snowflake</p><p>dentro da função <em>UPPER</em> e alterará o formato para: <em>”MMMM”</em>.</p><p>Por exemplo:</p><p><code>from: To_Char(DATE “1998-12-25”,”MONTH”)</code></p><p><code>to: UPPER(TO_CHAR(DATE “1998-12-25”, “MMMM”))</code></p>

Q

<p>A função será convertida para o equivalente da função do Snowflake<br>dentro da função <em>QUARTER</em>.</p><p>Por exemplo:</p><p><code>from: To_Char(DATE “1998-12-25”,”Q”)</code></p><p><code>to: TO_CHAR(QUARTER(DATE “1998-12-25”))</code></p>

RM

<p>A função será convertida em uma função definida pelo usuário <em>.</em></p><p>Por exemplo:</p><p><code>from: To_Char(DATE “1998-12-25”,”RM”)</code></p><p><code>to: SNOWCONVERT.PUBLIC.ROMAN_MONTH_UDF(DATE “1998-12-25”)</code></p>

RR

<p>A função será convertida para a função do Snowflake equivalente, mantendo o corpo da função</p><p>, mas alterando o formato para: <em>”YY”.</em></p><p>Por exemplo:</p><p><code>from: To_Char(DATE “1998-12-25”,”RR”)</code></p><p><code>to: TO_CHAR(DATE “1998-12-25”, “YY”)</code></p>

RR-MON-DD

<p>A função será convertida para a função do Snowflake equivalente, mantendo o corpo da função</p><p>, mas alterando o formato para: <em>”YY-MON-DD”.</em></p><p>Por exemplo:</p><p><code>from: To_Char(TIMESTAMP “1998-12-25 09:26:50.12”,”RR-MON-DD”)</code></p><p><code>to: To_Char(TIMESTAMP “1998-12-25 09:26:50.12”,”YY-MON-DD”)</code></p>

RRRR

<p>A função será convertida para a função do Snowflake equivalente, mantendo o corpo da função</p><p>, mas alterando o formato para: <em>”YYYY”.</em></p><p>Por exemplo:</p><p><code>from: To_Char(DATE “1998-12-25”,”RRRR”)</code></p><p><code>to: TO_CHAR(DATE “1998-12-25”, “YYYY”)</code></p>

SS

<p>A função será convertida em uma combinação de uma expressão condicional <em></em><br>e o equivalente da função do Snowflake.</p><p>Todas as partes combinadas com o operador <em>”OR”</em>.<br>Por exemplo:<br><code>from: To_Char(TIMESTAMP “1998-12-25 09:26:50.12”,”SS”)</code></p><p><code>to: CASE WHEN SECOND(TIMESTAMP “1998-12-25 09:26:50.12”) = 0</code><br><code>THEN “00” WHEN SECOND(TIMESTAMP “1998-12-25 09:26:50.12”) &#x3C; 10</code><br><code>THEN “0”</code></p>

SSSS

<p>A função será convertida para o equivalente da função do Snowflake, mas o corpo da função</p><p>será uma concatenação das partes de data e hora <em>SECOND</em>, <em>MINUTE,</em> e <em>HOUR</em>.</p><p>Por exemplo:</p><p><code>from: To_Char(TIMESTAMP “1998-12-25 09:26:50.12”,”SSSS”)</code></p><p><code>to: TO_CHAR(SECOND(TIMESTAMP “1998-12-25 09:26:50.12”) +</code><br><code>MINUTE(TIMESTAMP “1998-12-25 09:26:50.12”) * 60 +</code><br><code>HOUR(TIMESTAMP “1998-12-25 09:26:50.12”) * 3600)</code></p>

TS

<p>A função será convertida para a função do Snowflake equivalente, mantendo o corpo da função</p><p>, mas alterando o formato para: <em>”HH:MI:SS PM”.</em></p><p>Por exemplo:</p><p><code>from: To_Char(TIMESTAMP “1998-12-25 09:26:50.12”,”TS”)</code></p><p><code>to: TO_CHAR(TIMESTAMP “1998-12-25 09:26:50.12”, “HH:MI:SS PM”)</code></p>

W

<p>A função será convertida para a função <em>TRUNC</em> com a parte <em>DAYOFMONTH</em><br>datetime.</p><p>Por exemplo:</p><p><code>from: To_Char(DATE “1998-12-25”,”W”)</code></p><p><code>to: TRUNC(DAYOFMONTH(DATE “1998-12-25”) / 7 + 1)</code></p>

WW

<p>A função será convertida para a função <em>TRUNC</em> com a parte <em>DAYOFYEAR</em><br>datetime.</p><p>Por exemplo:</p><p><code>from: To_Char(DATE “1998-12-25”,”WW”)</code></p><p><code>to: TRUNC(DAYOFYEAR(DATE “1998-12-25”) / 7 + 1)</code></p>

Y

YYY

<p>A função será convertida para o equivalente da função do Snowflake</p><p>dentro da função <em>SUBSTR</em> e alterará o formato para: <em>”YYYY”</em>.</p><p>Por exemplo:</p><p><code>from: To_Char(DATE “1998-12-25”,”Y”)</code></p><p><code>to: SUBSTR(TO_CHAR(DATE “1998-12-25”, “YYYY”), 4, 1)</code></p>

Y,YYY

<p>A função será convertida em uma combinação da função do Snowflake<br>equivalente dentro da função SUBSTR e um símbolo de vírgula.<br>Todas as partes combinadas com o operador <em>”OR”</em>.</p><p>Por exemplo:</p><p><code>from: To_Char(DATE “1998-12-25”,”Y,YYY”)</code></p><p><code>to: SUBSTR(TO_CHAR(YEAR(DATE “1998-12-25”)), 1, 1)</code></p>

YEAR

SYEAR

<p>A função será convertida em uma função definida pelo usuário <em></em> dentro de uma função <em>UPPER</em><br>.</p><p>Por exemplo:</p><p><code>from: To_Char(DATE “1998-12-25”,”YEAR”)</code></p><p><code>to: UPPER(SNOWCONVERT.PUBLIC.YEAR_NAME_UDF(DATE “1998-12-25”))</code></p>

NLSSORT

Descrição

NLSSORT retorna uma chave de agrupamento para o valor de caractere char e um agrupamento especificado de forma explícita ou implícita. Uma chave de agrupamento é uma cadeia de bytes usada para classificar o caractere de acordo com o agrupamento especificado. A propriedade das chaves de agrupamento é que a ordenação mútua de duas dessas chaves geradas para o agrupamento determinado, quando comparadas de acordo com sua ordem binária, é a mesma que a ordenação mútua dos valores de caracteres de origem quando comparados de acordo com o agrupamento determinado… (NLSSORT no Oracle).

Amostra de padrão de origem

Sintaxe

NLSSORT(char [, 'nlsparam' ])

Copy

Documentação do Snowflake SQL

COLLATE(<string_expression>, '<collation_specification>')

Copy

Exemplos

Código:

CREATE TABLE test (name VARCHAR2(15));
INSERT INTO test VALUES ('Gaardiner');
INSERT INTO test VALUES ('Gaberd');
INSERT INTO test VALUES ('Gaasten');

SELECT *
  FROM test
  ORDER BY NLSSORT(name, 'NLS_SORT = XDanish');
Copy

Resultado:

:force:
NAME            
-------
Gaberd        
Gaardiner
Gaasten     

Copy

Código:

 CREATE OR REPLACE TABLE test (name VARCHAR(15))
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
;

INSERT INTO test
VALUES ('Gaardiner');

INSERT INTO test
VALUES ('Gaberd');

INSERT INTO test
VALUES ('Gaasten');

SELECT *
  FROM
  test
ORDER BY
COLLATE(name, '');
Copy

Resultado:

NAME            
-------
Gaberd        
Gaardiner
Gaasten
Copy

TO_NUMBER

Descrição

Converte uma expressão de entrada em um número de ponto fixo. Para a entrada NULL, a saída será NULL.

Argumentos

Obrigatório:

_ <expr>_

Uma expressão de um tipo numérico, de caractere ou variante.

Opcional:

_ <format>_

O modelo de formato SQL usado para analisar a entrada _ expr_ e retornar. Para obter mais informações, consulte Modelos de formato SQL.

_ <precision>_

O número máximo de dígitos decimais no número resultante; de 1 a 38. No Snowflake, a precisão não é utilizada para determinar o número de bytes necessários para armazenar o número e não tem qualquer efeito sobre a eficiência, portanto o padrão é o máximo (38).

_ <scale>_

O número de dígitos decimais fracionários (de 0 a _ precision_ - 1). 0 indica nenhum dígito fracionário (ou seja, um número inteiro). A escala padrão é 0.

Retornos

A função retorna NUMBER(precision, `` ``scale).

  • Se _ precision_ não for especificado, o padrão será 38.

  • Se _ scale_ não for especificado, o padrão será 0.

Para obter mais informações, consulte TO_NUMBER na documentação do Snowflake.

SELECT CAST('123,456E+40' AS NUMBER, '999,999EEE') FROM DUAL;
SELECT CAST('12sdsd3,456E+40' AS NUMBER, '999,999EEE') FROM DUAL;
SELECT CAST('12345sdsd' AS NUMBER, '99999') FROM DUAL;
SELECT CAST('12.345678912345678912345678912345678912' AS NUMBER, '99.999999999999999999999999999999999999') FROM DUAL;
SELECT CAST('               12.345678912345678912345678912345678912' AS NUMBER, '99.999999999999999999999999999999999999') FROM DUAL;
SELECT CAST('               -12.345678912345678912345678912345678912' AS NUMBER, '99.999999999999999999999999999999999999') FROM DUAL;
SELECT CAST('12.34567891234567891234567891234567891267' AS NUMBER, '99.999999999999999999999999999999999999') FROM DUAL;
SELECT CAST('123.456E-40' AS NUMBER, '999.9999EEE') FROM DUAL;
select cast('12,345,678,912,345,678,912,345,678,912,345,678,912' as number, '99,999,999,999,999,999,999,999,999,999,999,999,999') from dual;
SELECT CAST('  123.456E-40' AS NUMBER, '999.9999EEE') FROM DUAL;
select cast('       12,345,678,912,345,678,912,345,678,912,345.678912' as number, '99,999,999,999,999,999,999,999,999,999,999.999999') from dual;

SELECT CAST('12.34567891234567891234567891234567891267+' AS NUMBER, '99.999999999999999999999999999999999999S') FROM DUAL;
select cast('12,345,678,912,345,678,912,345,678,912,345,678,912+' as number, '99,999,999,999,999,999,999,999,999,999,999,999,999S') from dual;

select cast('12.48+' as number, '99.99S') from dual;
select cast('  12.48+' as number, '99.99S') from dual;
select cast('12.48+   ' as number, '99.99S') from dual;

SELECT CAST('123.456+E-2' AS NUMBER, '999.9999SEEE') FROM DUAL;
SELECT CAST('123.456+E-2-' AS NUMBER, '999.9999SEEE') FROM DUAL;

SELECT CAST('12356-' AS NUMBER, '99999S') FROM DUAL;

select cast(' 1.0E+123' as number, '9.9EEEE') from dual;
select cast('1.2E+02' as number, 'FM9.9EEEE') from dual;
select cast('123.45' as number, 'FM999.009') from dual;
select cast('123.00' as number, 'FM999.009') from dual;
select cast(' $123.45' as number, 'L999.99') from dual;
select cast('$123.45' as number, 'FML999.99') from dual;
select cast('1234567890+' as number, '9999999999S') from dual;
Copy
 SELECT
!!!RESOLVE EWI!!! /*** SSC-EWI-OR0050 - INPUT EXPRESSION IS OUT OF THE RANGE '123,456E+40' ***/!!!
 CAST('123,456E+40' AS NUMBER(38, 18) , '999,999EEE') FROM DUAL;

SELECT
 !!!RESOLVE EWI!!! /*** SSC-EWI-OR0053 - INCORRECT INPUT FORMAT '12sdsd3,456E+40' ***/!!! CAST('12sdsd3,456E+40' AS NUMBER(38, 18) , '999,999EEE') FROM DUAL;

SELECT
 !!!RESOLVE EWI!!! /*** SSC-EWI-OR0053 - INCORRECT INPUT FORMAT '12345sdsd' ***/!!! CAST('12345sdsd' AS NUMBER(38, 18) , '99999') FROM DUAL;

SELECT
 TO_NUMBER('12.345678912345678912345678912345678912', '99.999999999999999999999999999999999999', 38, 36)
FROM DUAL;

SELECT
 TO_NUMBER('               12.345678912345678912345678912345678912', '99.999999999999999999999999999999999999', 38, 36)
FROM DUAL;

SELECT
 TO_NUMBER('               -12.345678912345678912345678912345678912', '99.999999999999999999999999999999999999', 38, 36)
FROM DUAL;

SELECT
 !!!RESOLVE EWI!!! /*** SSC-EWI-OR0050 - INPUT EXPRESSION IS OUT OF THE RANGE '12.34567891234567891234567891234567891267' ***/!!! CAST('12.34567891234567891234567891234567891267' AS NUMBER(38, 18) , '99.999999999999999999999999999999999999') FROM DUAL;

SELECT
 TO_NUMBER('123.456E-40', '999.9999EEE', 38, 37)
FROM DUAL;

select
 TO_NUMBER('12,345,678,912,345,678,912,345,678,912,345,678,912', '99,999,999,999,999,999,999,999,999,999,999,999,999', 38, 0)
from dual;

SELECT
 TO_NUMBER('  123.456E-40', '999.9999EEE', 38, 37)
FROM DUAL;

select
 TO_NUMBER('       12,345,678,912,345,678,912,345,678,912,345.678912', '99,999,999,999,999,999,999,999,999,999,999.999999', 38, 6)
from dual;

SELECT
 !!!RESOLVE EWI!!! /*** SSC-EWI-OR0050 - INPUT EXPRESSION IS OUT OF THE RANGE '12.34567891234567891234567891234567891267+' ***/!!! CAST('12.34567891234567891234567891234567891267+' AS NUMBER(38, 18) , '99.999999999999999999999999999999999999S') FROM DUAL;

select
 TO_NUMBER('12,345,678,912,345,678,912,345,678,912,345,678,912+', '99,999,999,999,999,999,999,999,999,999,999,999,999S', 38, 0)
from dual;

select
 TO_NUMBER('12.48+', '99.99S', 38, 2)
from dual;

select
 TO_NUMBER('  12.48+', '99.99S', 38, 2)
from dual;

select
 TO_NUMBER('12.48+   ', '99.99S', 38, 2)
from dual;

SELECT
 TO_NUMBER('123.456+E-2', '999.9999SEEE', 38, 5)
FROM DUAL;

SELECT
 !!!RESOLVE EWI!!! /*** SSC-EWI-OR0053 - INCORRECT INPUT FORMAT '123.456+E-2-' ***/!!! CAST('123.456+E-2-' AS NUMBER(38, 18) , '999.9999SEEE') FROM DUAL;

SELECT
 TO_NUMBER('12356-', '99999S', 38, 0)
FROM DUAL;

select
 !!!RESOLVE EWI!!! /*** SSC-EWI-OR0050 - INPUT EXPRESSION IS OUT OF THE RANGE ' 1.0E+123' ***/!!! cast(' 1.0E+123' as NUMBER(38, 18) , '9.9EEEE') from dual;

select
 TO_NUMBER('1.2E+02', 'FM9.9EEEE', 38, 0)
from dual;

select
 TO_NUMBER('123.45', 'FM999.009', 38, 2)
from dual;

select
 TO_NUMBER('123.00', 'FM999.009', 38, 2)
from dual;

select
 !!!RESOLVE EWI!!! /*** SSC-EWI-OR0045 - CAST TYPE L AND FML NOT SUPPORTED ***/!!! cast(' $123.45' as NUMBER(38, 18) , 'L999.99') from dual;

select
 !!!RESOLVE EWI!!! /*** SSC-EWI-OR0045 - CAST TYPE L AND FML NOT SUPPORTED ***/!!! cast('$123.45' as NUMBER(38, 18) , 'FML999.99') from dual;

select
 TO_NUMBER('1234567890+', '9999999999S', 38, 0)
from dual;
Copy

Recomendações