Suporte para COLMAP

O COLMAP suporta os seguintes cenários:

A replicação somente de colunas específicas é um caso de uso muito comum, no qual você pode especificar colunas que precisam ser mapeadas no destino explicitamente.

Por exemplo, considere que uma tabela de origem tem as colunas COL1, COL2, …, COL10 e você só deseja criar COL1 e COL5 na tabela de destino. Em seguida, você pode adicionar parâmetros semelhantes aos seguintes no arquivo de parâmetros Replicat:

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

Considere os seguintes exemplos:

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

Neste exemplo, o campo COL10 da tabela de origem é mapeado para EMPNAME na tabela de destino usando COLMAP, enquanto todas as outras colunas mantêm seus nomes originais.

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

Neste exemplo, note que COLMAP é usado para alterar o nome da coluna A001 para Å001, que contém um caractere específico (não suportado).

Uma consideração importante ao usar COLMAP para renomear colunas é o impacto potencial em futuras alterações de esquema. Se uma nova coluna com o mesmo nome, como EMPNAME, for adicionada à tabela de origem, isso causará falha no processo Replicat porque ele tentará criar uma coluna duplicada no destino.

Embora existam soluções alternativas, como a criação de mapeamentos adicionais, elas podem levar a complexidades de manutenção. Portanto, é recomendável ter cuidado ao renomear colunas usando COLMAP. Considere adicionar novas colunas com nomes apropriados para evitar possíveis conflitos e garantir a replicação perfeita.

A seguir, uma possível solução alternativa para resolver esse conflito, no entanto, é altamente recomendável não confiar em tais soluções e, em vez disso, recomendar evitar o cenário completamente, escolhendo nomes de coluna exclusivos e compatíveis em todos os bancos de dados.

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