Sumário

Search

  1. Prefácio
  2. A Linguagem de Transformação
  3. Constantes
  4. Operadores
  5. Variáveis
  6. Datas
  7. Funções
  8. Criação de funções personalizadas
  9. Referência de API da Função Personalizada

Referência de Linguagem de Transformação

Referência de Linguagem de Transformação

TRUNC (Números)

TRUNC (Números)

Trunca os números em um dígito específico. Você também pode usar TRUNC para truncar datas.

Sintaxe

TRUNC(
numeric_value
[,
precision
] )
A tabela a seguir descreve os argumentos para este comando:
Argumento
Requerido/
Opcional
Descrição
valor_numérico
Requerido
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.
precisão
Opcional
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.
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)).

Valor de Retorno

Valor numérico.
NULL se um dos argumentos for NULL.
Se o valor de retorno for Decimal com precisão superior a 15, você poderá ativar a alta precisão para garantir precisão decimal de até 38 dígitos.

Exemplos

As seguintes expressões truncam os valores no porta Preço:
TRUNC( PRICE, 3 )
PRICE
RETURN VALUE
12.9995
12.999
-18.8652  
-18.865
56.9563
56.956
15.9928
15.992
NULL
NULL
TRUNC( PRICE, -1 )
PRICE
RETURN VALUE
12.99
10.0
-187.86  
-180.0
56.95
50.0
1235.99
1230.0
NULL
NULL
TRUNC( PRICE )
PRICE
RETURN VALUE
12.99
12.0
-18.99  
-18.0
56.95
56.0
15.99
15.0
NULL
NULL