主コンテンツへ
Oracle® Fusion Middleware Oracle GoldenGateリファレンスfor Windows and UNIX
12c (12.2.0.1)
E70112-04
目次へ移動
目次

前
次

5.10 COMPUTE

@COMPUTEファンクションでは、算術式の値をターゲット列に返します。関数から返される値は、文字列形式です。

算術式の値を別のOracle GoldenGateファンクションに返すときは、次の例のように@COMPUTE句を省略できます。

@STRNUM ((AMOUNT1 + AMOUNT2), LEFT)

前述は、次と同じ結果を返します。

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

算術式では、次の要素を組み合せることができます。

  • 数字

  • 数字を含む列名

  • 数字を返すファンクション

  • 算術演算子:

    + (加算)

    - (減算)

    * (乗算)

    / (除算)

    \ (余り)

  • 比較演算子:

    > (より大きい)

    >= (以上)

    < (より少ない)

    <= (以下)

    = (等しい)

    <> (等しくない)

    比較から導出した結果はゼロ(FALSEを示す)またはゼロ以外(TRUEを示す)になります。

  • カッコ(式の結果をグループ化)

  • 結合演算子ANDOR。Oracle GoldenGateは、結合式の必要部分のみを評価します。文がFALSEになると、式の残りの部分は無視されます。この動作は、紛失またはNULLの可能性があるフィールドを評価するときに役立ちます。たとえば、COL1の値が25で、COL2の値が10の場合は、次のようになります。

    @COMPUTE (COL1 > 0 AND COL2 < 3)0を返します。

    @COMPUTE (COL1 < 0 AND COL2 < 3)0を返します。COL2 < 3は評価されません。

    @COMPUTE ((COL1 + COL2)/5)7を返します。

構文

@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)