2.12 @COMPUTE
@COMPUTE
ファンクションでは、算術式の値をターゲット列に返します。関数から返される値は、文字列形式です。
算術式の値を別のOracle GoldenGateファンクションに返すときは、次の例のように@COMPUTE
句を省略できます。
@STRNUM ((AMOUNT1 + AMOUNT2), LEFT)
前述は、次と同じ結果を返します。
@STRNUM ((@COMPUTE (AMOUNT1 + AMOUNT2), LEFT)
算術式では、次の要素を組み合せることができます。
-
数字
-
数字を含む列名
-
数字を返すファンクション
-
算術演算子:
+
(加算)-
(減算)*
(乗算)/
(除算)\
(余り) -
比較演算子:
>
(より大きい)>=
(以上)<
(より少ない)<=
(以下)=
(等しい)<>
(等しくない)比較から導出した結果はゼロ(
FALSE
を示す)またはゼロ以外(TRUE
を示す)になります。 -
カッコ(式の結果をグループ化)
-
結合演算子
AND
、OR
。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)
親トピック: 列変換ファンクション