Sintaxe
TRUNC(
numeric_value
[,
precision
] )
A tabela a seguir descreve os argumentos para este comando:
| | Tipo de dados Numérico. Passa os valores que você deseja truncar. Você pode inserir qualquer expressão de transformação válida que avalie em um tipo de dados Numérico.
|
| | Pode ser um inteiro positivo ou negativo. Você pode inserir qualquer expressão de transformação válida que avalie em um inteiro. O inteiro especifica o número de dígitos para truncar.
|
Se a
precisão
for um inteiro positivo, TRUNC retornará o
valor_numérico
com o número de casas decimais especificadas pela
precisão
. Se a
precisão
for um inteiro negativo, TRUNC alterará os dígitos especificados à esquerda do ponto decimal para zeros. Se você omitir o argumento de
precisão
, TRUNC truncará a parte decimal do
valor_numérico
e retornará um inteiro.
Se você passar um valor de
precisão
decimal, o
Serviço de Integração do PowerCenter
arredondará
valor_numérico
para o inteiro mais próximo antes de avaliar a expressão.
Quando você executar uma sessão no modo de alta precisão, use a função ROUND antes do truncamento.
Quando você executar um mapeamento no modo de alta precisão, use a função ROUND antes do truncamento.
Por exemplo, suponha que a expressão a seguir é usada para truncar os valores na porta QTY:
TRUNC ( QTY / 15 )
Quando o valor para QTY = 15000000, a sessão retorna o valor 999999. O resultado esperado é 1000000.
No tempo de execução, o
Serviço de Integração do PowerCenter
avalia a parte constante da expressão e, em seguida, a parte variável.
Na expressão acima, QTY é o valor de variável e (1/15) é o valor constante.
Quando QTY = 15000000, a expressão é avaliada como segue:
TRUNC ( 15000000 * (1/15)
TRUNC ( 15000000 * (1/15)
= TRUNC ( 15000000 * 0.0666666666666666)
= TRUNC ( 15000000 * 0.0666666666666666)
= TRUNC ( 999999.99999999)
= 999999
Se você usar a função ROUND antes do truncamento, a expressão é avaliada como segue:
TRUNC (ROUND (QTY/15, .99999999999999999999999999)).