USEDEFAULTSを使用したデフォルトの列マッピングの有効化
COLMAPのUSEDEFAULTSオプションを使用すると、ソース列と対応するターゲット列の名前が同一の場合に、自動デフォルト列マッピングを指定できます。USEDEFAULTSを使用すると、すべてのターゲット列を明示的にマップする必要がないので、時間を節約できます。
デフォルト・マッピングの場合、Oracle GoldenGateはそれらの列をマッピングし、必要な場合は、データ型を、データ定義ファイルに基づいて変換します。明示的なマッピング文でマップされている列にはデフォルト・マッピングを指定しないでください。
次の列マッピングの例では、 ソース表ACCTBLとターゲット表ACCTTABのデフォルト列マッピングと明示的な列マッピングの使用について示します。両方の表の大半の列は同じで、次の点が異なります。
-
ソース表には
CUST_NAME列がありますが、ターゲット表にはNAME列があります。 -
ソース表の10桁の
PHONE_NO列は、ターゲット表の個別のAREA_CODE列、PHONE_PREFIX列およびPHONE_NUMBER列に対応します。 -
ソース表の個別の
YY列、MM列およびDD列は、ターゲット表の単一のTRANSACTION_DATE列に対応します。
これらの相違点に対処するため、USEDEFAULTSを使用して同じ列を自動的にマップし、異なる列には明示マッピングおよび変換関数を使用します。
次のサンプルは、MAPパラメータとTABLEパラメータのCOLMAPオプションを使用した列マッピングを示しています。ソース表ACCTBLからターゲット表ACCTTABへのマッピングについて説明します。
MAP SALES.ACCTBL, TARGET SALES.ACCTTAB,
COLMAP ( USEDEFAULTS,
NAME = CUST_NAME,
TRANSACTION_DATE = @DATE ('YYYY-MM-DD', 'YY',YEAR, 'MM', MONTH, 'DD', DAY),
AREA_CODE = @STREXT (PHONE_NO, 1, 3),
PHONE_PREFIX = @STREXT (PHONE_NO, 4, 6),
PHONE_NUMBER = @STREXT (PHONE_NO, 7, 10)
)
;表8-2 列マッピングの例
| パラメータ文 | 説明 |
|---|---|
|
|
|
ターゲット列の名前が同一の場合、ソース列をそのままマップします。 |
|
ソース列 |
|
|
|
|
デフォルトの列マッピングでOracle GoldenGateが従うルールの詳細は、「デフォルトの列マッピングの理解」を参照してください。