@COMPUTE
Use the @COMPUTE
function to return the value of an arithmetic expression to a target column. The value returned from the function is in the form of a string.
You can omit the @COMPUTE
phrase when returning the value of an arithmetic expression to another Oracle GoldenGate function, as in:
@STRNUM ((AMOUNT1 + AMOUNT2), LEFT)
The preceding returns the same result as:
@STRNUM ((@COMPUTE (AMOUNT1 + AMOUNT2), LEFT)
Arithmetic expressions can be combinations of the following elements.
-
Numbers
-
The names of columns that contain numbers
-
Functions that return numbers
-
Arithmetic operators:
+
(plus)-
(minus)*
(multiply)/
(divide)\
(remainder) -
Comparison operators:
>
(greater than)>=
(greater than or equal)<
(less than)<=
(less than or equal)=
(equal)<>
(not equal)Results that are derived from comparisons can be zero (indicating
FALSE
) or non-zero (indicatingTRUE
). -
Parentheses (for grouping results in the expression)
-
The conjunction operators
AND
,OR
. Oracle GoldenGate only evaluates the necessary part of a conjunction expression. Once a statement isFALSE
, the rest of the expression is ignored. This can be valuable when evaluating fields that may be missing or null. For example, if the value ofCOL1
is25
and the value ofCOL2
is10
, then the following are possible:@COMPUTE (COL1 > 0 AND COL2 < 3)
returns0
.@COMPUTE (COL1 < 0 AND COL2 < 3)
returns0
.COL2 < 3
is never evaluated.@COMPUTE ((COL1 + COL2)/5)
returns7
.
Syntax
@COMPUTE (expression)