3.16 EVAL
@EVAL
ファンクションでは、一連の独立したテストに基づいて値を選択します。テストできる条件数に制限はありません。ケース数が多い場合は、パフォーマンスを最適化するために最も頻繁に検出される条件を最初にリストします。
Oracle GoldenGateでは、このファンクションで、Unicode、およびMicrosoft Windows、UNIX、Linuxオペレーティング・システムのネイティブ・エンコーディングの文字列を格納する列内の文字を表すために、エスケープ・シーケンスの使用をサポートしています。引数がUnicodeで指定される場合、ターゲット列はSQL Unicodeデータ型である必要があります。
構文
@EVAL (condition, result [condition, result] [, ....] [, default_result])
- 例
-
次の例では、
AMOUNT
列が10000より大きい場合に、結果high amount
が返されます。AMOUNT
が5000より大きく、かつ10000以下の場合(前の条件が満たされなかった場合)は、結果somewhat high
が返されます。いずれの条件も満たさない場合、デフォルト結果が指定されていないため、COLUMN_MISSING
インジケーションが返されます。AMOUNT_DESC = @EVAL (AMOUNT > 10000, 'high amount', AMOUNT > 5000, 'somewhat high')
-
次に、前述を変更した例を示します。同じ結果が返されますが、デフォルト値が指定されたため、
AMOUNT
が5000以下の場合には結果lower
が返されます。@EVAL (AMOUNT > 10000, 'high amount', AMOUNT > 5000, 'somewhat high', 'lower')
親トピック: 列変換ファンクション