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:

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.

  1. 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.

  2. 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:

    1. Os nomes de tabela são usados exatamente como especificado na cláusula TARGET da instrução MAP no arquivo de parâmetros Replicat.

    2. Os nomes de coluna são usados no arquivo de trilha, sem aspas, a menos que sejam citados explicitamente na cláusula COLMAP da instrução MAP no 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:

  1. 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.employee

    • Column id digite int (chave primária)

    • Tipo de nome varchar

    Se o nome da tabela de destino na cláusula TARGET da instrução MAP contiver 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 MAP 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 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 objeto employee é citado no CREATE TABLE DDL porque 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.employee

    • Column id digite int (chave primária)

    • Tipo de nome varchar

    Se o nome da tabela de destino na cláusula TARGET da instrução MAP contiver 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 MAP no 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 objeto employee não tem aspas no CREATE TABLE DDL, pois o nome do objeto na cláusula TARGET da instrução MAP nã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.employee

    • Column id digite int (chave primária)

    • Tipo de nome varchar

    Se o nome da tabela de destino na cláusula TARGET da instrução MAP contiver um caractere curinga, o mesmo nome e maiúsculas e minúsculas do nome de origem serão usados para a tabela de destino.

    Exemplo:

    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 objeto employee está sem aspas no CREATE TABLE DDL porque 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.employee

    • Column id digite int (chave primária)

    • Tipo de nome varchar

    Se o nome da tabela de destino na cláusula TARGET da instrução MAP contiver 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.

    Exemplo:

    A instrução MAP no 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 objeto employee é citado no CREATE TABLE DDL, pois o nome do objeto na cláusula TARGET da instrução MAP é citado. EMPNAME é citado na DDL, porque é especificado como citado na cláusula COLMAP
  2. 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.employee

    • Column id digite int (chave primária)

    • Tipo de nome varchar

    Se o nome da tabela de destino na cláusula TARGET da instrução MAP contiver um caractere curinga, o mesmo nome e maiúsculas e minúsculas do nome de origem serão usados para a tabela de destino.

    Exemplo:

    A instrução MAP 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 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 objeto employee está sem aspas no CREATE TABLE DDL porque 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.employee

    • Column id digite int (chave primária)

    • Tipo de nome varchar

    Se o nome da tabela de destino na cláusula TARGET da instrução MAP contiver 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.

    Exemplo:

    A instrução MAP no 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 objeto employee não tem aspas no CREATE TABLE DDL, pois o nome do objeto na cláusula TARGET da instrução MAP nã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.employee

    • Column id digite int (chave primária)

    • Tipo de nome varchar

    Se o nome da tabela de destino na cláusula TARGET da instrução MAP contiver um caractere curinga, o mesmo nome e maiúsculas e minúsculas do nome de origem serão usados para a tabela de destino.

    Exemplo:

    A instrução MAP 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 objeto employee está sem aspas no CREATE TABLE DDL porque 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.employee

    • Column id digite int (chave primária)

    • Tipo de nome varchar

    Se o nome da tabela de destino na cláusula TARGET da instrução MAP contiver 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.

    Exemplo:

    A instrução MAP no 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 objeto employee não tem aspas no CREATE TABLE DDL, pois o nome do objeto na cláusula TARGET da instrução MAP não tem aspas.