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が従うルールの詳細は、「デフォルトの列マッピングの理解」を参照してください。