@COMPUTE

Use a função @COMPUTE para retornar o valor de uma expressão aritmética para uma coluna de destino. O valor retornado da função está na forma de uma string.

Você pode omitir a frase @COMPUTE ao retornar o valor de uma <expression> aritmética para outra função do Oracle GoldenGate, como em:

@STRNUM ((AMOUNT1 + AMOUNT2), LEFT)

O texto anterior retorna o mesmo resultado que:

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

As expressões aritméticas podem ser combinações dos seguintes elementos.

Sintaxe

@COMPUTE (<expression>)

<expression>

Uma expressão aritmética válida. O valor numérico mais a precisão não pode ter mais de 17 dígitos. Se esse limite for excedido, o @COMPUTE retornará um erro semelhante ao seguinte.

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

Exemplos

Exemplo 1

AMOUNT_TOTAL = @COMPUTE (AMT + AMT2)

Exemplo 2

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

Exemplo 3

ANNUAL_SALARY = @COMPUTE (MONTHLY_SALARY * 12)

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

Este exemplo ilustra como obter o restante do SQL. Certifique-se de que haja um espaço entre id \ 10 nos três caracteres; caso contrário, ele será reportado como um erro de sintaxe de filtro.