Mapeamento Automático de Nomes de Objeto
O nome da tabela de destino é obtido da cláusula TARGET da instrução MAP e os nomes das colunas de destino são obtidos dos nomes das colunas de origem nos metadados da trilha.
No momento, a funcionalidade Evolução Automática do Esquema só suporta o mapeamento de nomes de objetos quando o banco de dados de destino CHARSET for igual ao banco de dados de origem CHARSET ou se for o superconjunto do banco de dados de origem CHARSET. Em outros casos, uma mensagem de erro apropriada é relatada.
Nos casos em que o tamanho do nome da tabela ou da coluna da origem é muito longo (e esse tamanho não é suportado no banco de dados de destino), ou no caso em que o nome da tabela ou da coluna contém caracteres não suportados (que não são suportados no banco de dados de destino), o processo Replicat é encerrado com uma mensagem de erro apropriada.
Para continuar, uma das seguintes ações corretivas deve ser executada:
-
Para nomes de tabela de destino problemáticos, você deve especificar explicitamente o nome da tabela de destino apropriado na especificação
MAPque atende aos requisitos do banco de dados de destino. -
Para nomes de coluna problemáticos, você precisa especificar explicitamente o(s) nome(s) de coluna de destino apropriado(s) na cláusula
COLMAPda instruçãoMAPque atende aos requisitos do banco de dados de destino. Isso pode ser suportado com algumas restrições na origem, como não adicionar novas colunas com os mesmos nomes especificados na cláusulaCOLMAPpara a coluna de destino.
A distinção entre maiúsculas e minúsculas dos nomes de tabela ou coluna gerados para a Evolução Automática do Esquema depende das regras de distinção entre maiúsculas e minúsculas dos bancos de dados de origem e de destino e é regida pelas regras a seguir.
-
Em um banco de dados de origem com distinção entre maiúsculas e minúsculas para o cenário de replicação do banco de dados de destino com distinção entre maiúsculas e minúsculas, todos os nomes são citados e usados.
-
Para quaisquer outras combinações de origem a destino, incluindo diferenciação de maiúsculas e minúsculas para sem distinção entre maiúsculas e minúsculas, sem distinção entre maiúsculas e minúsculas para sem distinção entre maiúsculas e minúsculas e sem distinção entre maiúsculas e minúsculas para sem distinção entre maiúsculas e minúsculas, as seguintes regras são seguidas:
-
Os nomes de tabela são usados exatamente como especificado na cláusula
TARGETda instruçãoMAPno arquivo de parâmetros Replicat. -
Os nomes de coluna são usados no arquivo de trilha, sem aspas, a menos que sejam citados explicitamente na cláusula
COLMAPda instruçãoMAPno arquivo de parâmetros Replicat.
-
Se os nomes das colunas contiverem um dos seguintes caracteres especiais ou espaços, os nomes serão citados e usados.
'".,{}()[]|+-_%~^#@/!><*&$:=?;\
Veja a seguir a convenção de nomenclatura de objeto usada pela Evolução Automática do Esquema para os seguintes casos de uso:
-
Caso de Uso: Banco de Dados de Origem com Distinção entre Maiúsculas e Minúsculas
Opções Comportamento Se você estiver replicando para um banco de dados de destino com distinção entre maiúsculas e minúsculas, considere o caso de uso com:
O nome da tabela de origem como
hr.employeeColumn iddigiteint(chave primária)Tipo de nome
varchar
Se o nome da tabela de destino na cláusula
TARGETda instruçãoMAPcontiver um caractere curinga, o mesmo nome e maiúsculas/minúsculas do nome de origem serão usados para a tabela de destino com aspas adicionadas a ela.Exemplo:
A instrução
MAPno arquivo de parâmetros Replicat é a seguinteMAP hr.*, TARGET region.*;A funcionalidade Automatic Schema Evolution gera a DDL no banco de dados de destino com distinção entre maiúsculas e minúsculas conforme:
CREATE TABLE "region"."employee" ( "id" int not null, "name" VARCHAR(20), primary key ("id"));Observação:
O nome do objetoemployeeé citado noCREATE TABLE DDLporque os bancos de dados de origem e de destino fazem distinção entre maiúsculas e minúsculas.Se você estiver replicando para um banco de dados de destino com distinção entre maiúsculas e minúsculas, considere o caso de uso com:
O nome da tabela de origem como
hr.employeeColumn iddigiteint(chave primária)Tipo de nome
varchar
Se o nome da tabela de destino na cláusula
TARGETda instruçãoMAPcontiver um nome explícito, o mesmo nome e maiúsculas/minúsculas do nome de origem serão usados para a tabela de destino com aspas adicionadas a ela.Exemplo:
A instrução
MAPno arquivo de parâmetros Replicat é a seguinte:MAP hr.employee, TARGET region.employee, COLMAP(USEDEFAULTS, "EMPNAME" = name);A funcionalidade Automatic Schema Evolution gera a DDL no banco de dados de destino com distinção entre maiúsculas e minúsculas da seguinte maneira:
CREATE TABLE "region"."employee" ( "id" int not null, "EMPNAME" VARCHAR(20), primary key ("id"));Observação:
O nome do objetoemployeenão tem aspas noCREATE TABLE DDL, pois o nome do objeto na cláusulaTARGETda instruçãoMAPnão tem aspas.Se você estiver replicando para um banco de dados de destino sem distinção entre maiúsculas e minúsculas, considere o caso de uso com:
O nome da tabela de origem como
hr.employeeColumn iddigiteint(chave primária)Tipo de nome
varchar
Se o nome da tabela de destino na cláusula
Exemplo:TARGETda instruçãoMAPcontiver um caractere curinga, o mesmo nome e maiúsculas e minúsculas do nome de origem serão usados para a tabela de destino.A instrução de mapa no arquivo de parâmetros Replicat é a seguinte:
MAP hr.*, TARGET region.*;A funcionalidade Automatic Schema Evolution gera a DDL no banco de dados de destino sem distinção entre maiúsculas e minúsculas da seguinte maneira:
CREATE TABLE region.employee (id int not null, name VARCHAR(20), primary key (id));Observação:
O nome do objetoemployeeestá sem aspas noCREATE TABLE DDLporque a cláusula de destino tem um nome curinga sem aspas.Se você estiver replicando para um banco de dados de destino sem distinção entre maiúsculas e minúsculas, considere o caso de uso com:
O nome da tabela de origem como
hr.employeeColumn iddigiteint(chave primária)Tipo de nome
varchar
Se o nome da tabela de destino na cláusula
Exemplo:TARGETda instruçãoMAPcontiver um nome explícito, o mesmo nome e maiúsculas e minúsculas do nome de origem serão usados para a tabela de destino.A instrução
MAPno arquivo de parâmetros Replicat é a seguinte:MAP hr.employee, TARGET region."employee", COLMAP(USEDEFAULTS, "EMPNAME" = name);A funcionalidade Automatic Schema Evolution gera a DDL no banco de dados de destino sem distinção entre maiúsculas e minúsculas da seguinte maneira:
CREATE TABLE region."employee" ( id int not null, "EMPNAME" VARCHAR(20), primary key (id));Observação:
O nome do objetoemployeeé citado noCREATE TABLE DDL, pois o nome do objeto na cláusulaTARGETda instruçãoMAPé citado.EMPNAMEé citado na DDL, porque é especificado como citado na cláusulaCOLMAP -
Caso de Uso: Banco de Dados de Origem sem Distinção entre Maiúsculas e Minúsculas
Opções Comportamento Se você estiver replicando para um banco de dados de destino com distinção entre maiúsculas e minúsculas, considere o uso de maiúsculas e minúsculas com:
O nome da tabela de origem como
hr.employeeColumn iddigiteint(chave primária)Tipo de nome
varchar
Se o nome da tabela de destino na cláusula
Exemplo:TARGETda instruçãoMAPcontiver um caractere curinga, o mesmo nome e maiúsculas e minúsculas do nome de origem serão usados para a tabela de destino.A instrução
MAPno arquivo de parâmetros Replicat é a seguinte:MAP hr.*, TARGET region.*;A funcionalidade Automatic Schema Evolution gera a DDL no banco de dados de destino com distinção entre maiúsculas e minúsculas da seguinte maneira:
CREATE TABLE region.employee ( id int not null, name VARCHAR(20), primary key (id));Observação:
O nome do objetoemployeeestá sem aspas noCREATE TABLE DDLporque a cláusula de destino tem um nome curinga sem aspas.Se você estiver replicando para um banco de dados de destino com distinção entre maiúsculas e minúsculas, considere o uso de maiúsculas e minúsculas com:
O nome da tabela de origem como
hr.employeeColumn iddigiteint(chave primária)Tipo de nome
varchar
Se o nome da tabela de destino na cláusula
Exemplo:TARGETda instruçãoMAPcontiver um nome explícito, o mesmo nome e maiúsculas e minúsculas do nome de origem serão usados para a tabela de destino.A instrução
MAPno arquivo de parâmetros Replicat é a seguinte:MAP hr.employee, TARGET region.employee, COLMAP(USEDEFAULTS, "EMPNAME" = name);A funcionalidade Automatic Schema Evolution gera a DDL no banco de dados de destino com distinção entre maiúsculas e minúsculas da seguinte maneira:
CREATE TABLE region.employee ( id int not null, "EMPNAME" VARCHAR(20), primary key (id));Observação:
O nome do objetoemployeenão tem aspas noCREATE TABLE DDL, pois o nome do objeto na cláusulaTARGETda instruçãoMAPnão tem aspas.Se você estiver replicando para um banco de dados de destino sem distinção entre maiúsculas e minúsculas, considere o caso de uso com:
O nome da tabela de origem como
hr.employeeColumn iddigiteint(chave primária)Tipo de nome
varchar
Se o nome da tabela de destino na cláusula
Exemplo:TARGETda instruçãoMAPcontiver um caractere curinga, o mesmo nome e maiúsculas e minúsculas do nome de origem serão usados para a tabela de destino.A instrução
MAPno arquivo de parâmetros Replicat é a seguinte:MAP hr.*, TARGET region.*;A funcionalidade Automatic Schema Evolution gera a DDL no banco de dados de destino sem distinção entre maiúsculas e minúsculas da seguinte maneira:
CREATE TABLE region.employee ( id int not null, name VARCHAR(20), primary key (id));Observação:
O nome do objetoemployeeestá sem aspas noCREATE TABLE DDLporque a cláusula de destino tem um nome curinga sem aspas.Se você estiver replicando para um banco de dados de destino sem distinção entre maiúsculas e minúsculas, considere o caso de uso com:
O nome da tabela de origem como
hr.employeeColumn iddigiteint(chave primária)Tipo de nome
varchar
Se o nome da tabela de destino na cláusula
Exemplo:TARGETda instruçãoMAPcontiver um nome explícito, o mesmo nome e maiúsculas e minúsculas do nome de origem serão usados para a tabela de destino.A instrução
MAPno arquivo de parâmetros Replicat é a seguinte:MAP hr.employee, TARGET region.employee, COLMAP(USEDEFAULTS, EMPNAME = name);A funcionalidade Automatic Schema Evolution gera a DDL no banco de dados de destino sem distinção entre maiúsculas e minúsculas da seguinte maneira:
CREATE TABLE region.employee ( id int not null, EMPNAME VARCHAR(20), primary key (id));Observação:
O nome do objetoemployeenão tem aspas noCREATE TABLE DDL, pois o nome do objeto na cláusulaTARGETda instruçãoMAPnão tem aspas.