@COMPUTE

Utilice la función @COMPUTE para devolver el valor de una expresión aritmética a una columna de destino. El valor devuelto de la función tiene el formato de una cadena.

Puede omitir la frase @COMPUTE al devolver el valor de una <expression> aritmética a otra función de Oracle GoldenGate, como en:

@STRNUM ((AMOUNT1 + AMOUNT2), LEFT)

El resultado anterior devuelve el mismo resultado que:

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

Las expresiones aritméticas pueden ser combinaciones de los siguientes elementos.

Sintaxis

@COMPUTE (<expression>)

<expression>

Expresión aritmética válida. El valor numérico más la precisión no puede superar los 17 dígitos. Si se supera este límite, @COMPUTE devuelve un error similar al siguiente.

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

Ejemplos

Ejemplo 1

AMOUNT_TOTAL = @COMPUTE (AMT + AMT2)

Ejemplo 2

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

Ejemplo 3

ANNUAL_SALARY = @COMPUTE (MONTHLY_SALARY * 12)

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

En este ejemplo se muestra cómo lograr el SQL restante. Asegúrese de que haya un espacio entre id \ 10 en los tres caracteres; de lo contrario, se informará como un error de sintaxis de filtro.