@COMPUTE

Utilisez la fonction @COMPUTE pour renvoyer la valeur d'une expression arithmétique vers une colonne cible. La valeur renvoyée par la fonction est sous la forme d'une chaîne.

Vous pouvez omettre l'expression @COMPUTE lorsque vous renvoyez la valeur d'une fonction arithmétique <expression> à une autre fonction Oracle GoldenGate, comme dans :

@STRNUM ((AMOUNT1 + AMOUNT2), LEFT)

Le résultat précédent renvoie le même résultat que :

@STRNUM ((@COMPUTE (AMOUNT1 + AMOUNT2), LEFT)

Les expressions arithmétiques peuvent être des combinaisons des éléments suivants.

Syntaxe

@COMPUTE (<expression>)

<expression>

Expression arithmétique valide. La valeur numérique plus la précision ne peut pas être supérieure à 17 chiffres. Si cette limite est dépassée, @COMPUTE renvoie une erreur similaire à la suivante.

2013-08-01 01:54:22  ERROR   OGG-01334  Error mapping data from <column> to <column> in function COMPUTE.

Exemples

Exemple 1

AMOUNT_TOTAL = @COMPUTE (AMT + AMT2)

Exemple 2

AMOUNT_TOTAL = @IF (AMT >= 0, AMT * 100, 0)

Exemple 3

ANNUAL_SALARY = @COMPUTE (MONTHLY_SALARY * 12)

mod(id,10) = 1 MAP otest.tab,TARGET mtest.tab1,FILTER (@compute (id \ 10) = 1)

Cet exemple montre comment obtenir le reste du code SQL. Assurez-vous qu'il y a un espace entre id \ 10 dans les trois caractères, sinon il sera signalé comme une erreur de syntaxe de filtre.