@COMPUTE

使用 @COMPUTE 函数可将算术表达式的值返回到目标列。从函数返回的值采用字符串的形式。

将算术 <expression> 的值返回到其他 Oracle GoldenGate 函数时,可以省略 @COMPUTE 短语,如下所示:

@STRNUM ((AMOUNT1 + AMOUNT2), LEFT)

上述语句返回的结果与以下语句返回的结果相同:

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

算术表达式可以是以下元素的组合。

语法

@COMPUTE (<expression>)

<expression>

有效的算术表达式。数字值加上精度不能大于 17 位数。如果超出此限制,@COMPUTE 将返回类似于以下内容的错误。

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

示例

示例 1

AMOUNT_TOTAL = @COMPUTE (AMT + AMT2)

示例 2

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

示例 3

ANNUAL_SALARY = @COMPUTE (MONTHLY_SALARY * 12)

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

本示例说明如何实现剩余的 SQL。确保 id \ 10 之间有三个字符的空格,否则将报告为过滤器语法错误。