支援 COLMAP
COLMAP 支援下列案例:
-
只將來源資料欄的子集複製到目標表格。
-
由於相容性問題 (例如不支援的字元或超過允許的長度上限),請選擇與來源表格中可用的資料欄名稱不同。注意:只有
CREATE TABLE才提供COLMAP支援。ALTER TABLE案例不支援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);