Supporto per COLMAP
COLMAP supporta gli scenari riportati di seguito.
-
Replicare solo un subset di colonne di origine nella tabella di destinazione.
-
Scegliere un nome di colonna diverso da quello disponibile nella tabella di origine a causa di problemi di compatibilità, ad esempio caratteri non supportati o che superano la lunghezza massima consentita. Nota: il supporto
COLMAPviene fornito solo perCREATE TABLE.COLMAPnon è supportato per i casiALTER TABLE.
La replica di solo colonne specifiche è un caso d'uso molto comune, in cui è possibile specificare in modo esplicito le colonne da mappare nella destinazione.
Ad esempio, si consideri che una tabella di origine contiene le colonne COL1, COL2, …, COL10 e si desidera creare solo COL1 e COL5 nella tabella di destinazione, è possibile aggiungere parametri simili ai seguenti nel file dei parametri Replicat:
MAP SRC.TABLE, TARGET TGT.TABLE, COLMAP(COL1 = COL1, COL5 = COL5);
Esaminare gli esempi riportati di seguito.
MAP SRC.TABLE, TARGET TGT.TABLE, COLMAP (USEDEFAULTS, EMPNAME = COL10);
In questo esempio, il campo COL10 della tabella di origine viene mappato a EMPNAME nella tabella di destinazione utilizzando COLMAP, mentre tutte le altre colonne mantengono i nomi originali.
MAP SRC.REGION, TARGET TGT.EMPLOYEE, COLMAP (USEDEFAULTS, A001 = Å001);
In questo esempio, si noti che COLMAP viene utilizzato per modificare il nome della colonna A001 in Å001, che contiene un carattere specifico (non supportato).
Una considerazione importante quando si utilizza COLMAP per rinominare le colonne è il potenziale impatto sulle future modifiche dello schema. Se una nuova colonna con lo stesso nome, ad esempio EMPNAME, viene aggiunta alla tabella di origine, il processo Replicat non riuscirà perché tenta di creare una colonna duplicata nella destinazione.
Sebbene esistano soluzioni alternative, come la creazione di mapping aggiuntivi, possono portare a complessità di manutenzione. Si consiglia pertanto di prestare attenzione quando si rinominano le colonne utilizzando COLMAP. Prendi in considerazione l'aggiunta di nuove colonne con nomi appropriati per evitare potenziali conflitti e garantire una replica perfetta.
Di seguito è riportata una possibile soluzione alternativa per affrontare questo conflitto, tuttavia, si consiglia vivamente di non fare affidamento su tali soluzioni e invece di raccomandare di evitare del tutto lo scenario scegliendo nomi di colonna univoci e compatibili in tutti i database.
MAP SRC.TABLE, TARGET TGT.TABLE, COLMAP (USEDEFAULTS, EMPNAME = COL10, EMPNAME_NEW = EMPNAME);