プライマリ・コンテンツに移動
Oracle® GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIX
12c (12.1.2)
E49845-08
  目次へ移動
目次

前
 
次
 

CASE

@CASEファンクションでは、一連の値テストに応じて値を1つ選択します。@CASEでテストできるケース数に制限はありません。ケース数が多い場合は、パフォーマンスを最適化するために最も頻繁に検出される条件を最初にリストします。

Oracle GoldenGateでは、このファンクションで、Unicode、およびMicrosoft Windows、UNIX、Linuxオペレーティング・システムのネイティブ・エンコーディングの文字列を格納する列内の文字を表すために、エスケープ・シーケンスの使用をサポートしています。引数がUnicodeで指定される場合、ターゲット列はSQL Unicodeデータ型である必要があります。

このファンクションは、NCHARまたはNVARCHARデータ型をサポートしていません。

構文

@CASE (value, test_value1, test_result1
[, test_value2, test_result2] [, ...]
[, default_result]
value

テストする値(列名など)。リテラルは一重引用符で囲みます。

test_value

valueに有効な結果。リテラルは一重引用符で囲みます。

test_result

test_valueの値に基づいて返される値。リテラルは一重引用符で囲みます。

default_result

valueがどのtest_value値にも該当しない場合に返されるデフォルト値。リテラルは一重引用符で囲みます。

例1   

次の例では、PRODUCT_CODECARの場合はA carが返され、PRODUCT_CODETRUCKの場合はA truckが返されます。PRODUCT_CODEが最初の2つのケースのいずれにも該当しない場合は、デフォルト値が指定されていないため、FIELD_MISSINGインジケーションが返されます。

@CASE (PRODUCT_CODE, 'CAR', 'A car', 'TRUCK', 'A truck')
例2   

次の例は前述の例に似ていますが、ここではデフォルト値が指定されています。PRODUCT_CODECARにもTRUCKにも該当しない場合、このファンクションはA vehicleを返します。

@CASE (PRODUCT_CODE, 'CAR', 'A car', 'TRUCK', 'A truck', 'A vehicle')