Table des matières

Search

  1. Préface
  2. Le langage de transformation
  3. Constantes
  4. Opérateurs
  5. Variables
  6. Dates
  7. Fonctions

Transformation Language Reference

Transformation Language Reference

TRUNC (Nombres)

TRUNC (Nombres)

Tronque des nombres à un chiffre spécifique. Vous pouvez également utiliser TRUNC pour tronquer des dates.

Syntaxe

TRUNC(
numeric_value
[,
precision
] )
Le tableau suivant décrit les arguments de cette commande:
Argument
Obligatoire/
Facultatif
Description
numeric_value
Obligatoire
Type de données numérique. Transmet les valeurs que vous voulez tronquer. Vous pouvez entrer n'importe quelle expression de transformation valide qui renvoie un type de données numérique.
précision
Facultatif
Peut être un entier positif ou négatif. Vous pouvez saisir toute expression de transformation valide qui renvoie un nombre entier. Le nombre entier spécifie le nombre de chiffres à tronquer.
Si la
précision
est un entier positif, TRUNC renvoie
numeric_value
avec le nombre de décimales spécifié dans la
précision
. Si la
précision
est un entier négatif, TRUNC remplace les chiffres spécifiés à gauche du point décimal par des zéros. Si vous omettez l'argument
précision
, TRUNC tronque la partie décimale de
numeric_value
et renvoie un entier.
Si vous transmettez une valeur
précision
décimale, le
Service d'intégration de données
arrondit
numeric_value
à l'entier le plus proche avant d'évaluer l'expression.
Lorsque vous exécutez un mappage en mode de précision élevée, utilisez la fonction ROUND avant d'effectuer la troncation.
Par exemple, l'expression suivante est utilisée pour tronquer les valeurs dans le port QTY :
TRUNC ( QTY / 15 )
Lorsque la valeur de QTY = 15000000, la session renvoie la valeur 999999. Le résultat attendu est 1000000.
Lors de l'exécution, le
Service d'intégration de données
évalue la partie constante de l'expression, puis la partie variable.
Dans l'expression ci-dessus, QTY est la valeur de la variable et (1/15) est la valeur constante.
Lorsque QTY = 15000000, l'expression est évaluée comme suit :
TRUNC ( 15000000 * (1/15) TRUNC ( 15000000 * (1/15) = TRUNC ( 15000000 * 0.0666666666666666) = TRUNC ( 15000000 * 0.0666666666666666) = TRUNC ( 999999.99999999) = 999999
Si vous utilisez la fonction ROUND avant d'effectuer la troncation, l'expression est évaluée comme suit :
TRUNC (ROUND (QTY/15, .99999999999999999999999999)).

Valeur de retour

Valeur numérique.
NULL si un des arguments est NULL.
Si la valeur de retour est décimale avec une précision supérieure à 15, vous pouvez activer la précision élevée pour garantir une précision décimale jusqu'à 28 chiffres.

Exemples

Les expressions suivantes tronquent les valeurs dans le port Price :
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