COLMAPのサポート

COLMAPは、次のシナリオをサポートします。

特定の列のみをレプリケートすることは、ターゲットで明示的にマップする必要がある列を指定できる、非常に一般的なユースケースです。

たとえば、ソース表に列COL1、COL2、…、COL10があり、ターゲット表にCOL1およびCOL5のみを作成する必要がある場合、Replicatパラメータ・ファイルに次のようなパラメータを追加できます。

MAP SRC.TABLE, TARGET TGT.TABLE, COLMAP(COL1 = COL1, COL5 = COL5);

次の例を検討してください:

MAP SRC.TABLE, TARGET TGT.TABLE, COLMAP (USEDEFAULTS, EMPNAME = COL10);

この例では、ソース表のCOL10フィールドは、COLMAPを使用してターゲット表のEMPNAMEにマップされ、他のすべての列は元の名前を保持します。

MAP SRC.REGION, TARGET TGT.EMPLOYEE, COLMAP (USEDEFAULTS, A001 = Å001);

この例では、COLMAPを使用して、特定の(サポートされていない)文字を含む列A001の名前をÅ001に変更することに注意してください。

COLMAPを使用して列名を変更する際の重要な考慮事項は、将来のスキーマ変更に影響を及ぼす可能性があります。同じ名前の新しい列(EMPNAMEなど)がソース表に追加されると、Replicatプロセスはターゲットに重複する列を作成しようとするため失敗します。

追加のマッピングの作成など、回避策は存在しますが、メンテナンスの複雑さにつながる可能性があります。したがって、COLMAPを使用して列の名前を変更する場合は注意が必要です。潜在的な競合を回避し、シームレスなレプリケーションを確保するために、適切な名前で新しい列を追加することを検討してください。

次は、この競合に対処するための考えられる回避策ですが、このような解決策に依存しないことを強くお薦めします。また、すべてのデータベースで一意で互換性のある列名を選択することで、シナリオを完全に回避することをお薦めします。

MAP SRC.TABLE, TARGET TGT.TABLE, COLMAP (USEDEFAULTS, EMPNAME = COL10, EMPNAME_NEW = EMPNAME);