@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の3つの文字の間にスペースがあることを確認してください。そうでない場合はフィルタ構文エラーとしてレポートされます。