Usando Curingas em Nomes de Objetos de Banco de Dados

Você pode usar curingas para qualquer parte de um nome de objeto totalmente qualificado, se houver suporte para o banco de dados específico. Essas partes do nome podem ser as seguintes: o nome do contêiner, do banco de dados ou do catálogo, o proprietário (esquema ou nome do banco de dados) e o nome da tabela ou sequência. Para obter detalhes sobre como nomes de objetos e curingas são suportados, consulte o guia de instalação e configuração do Oracle GoldenGate para esse banco de dados.

Quando apropriado, os parâmetros do Oracle GoldenGate permitem o uso de dois tipos de curinga para especificar vários objetos em uma instrução:

Regras para Usar Curingas para Objetos de Origem

Para objetos de origem, você pode usar o asterisco sozinho ou com um nome parcial. Por exemplo, as seguintes especificações de origem são válidas:

Os parâmetros TABLE, MAP e SEQUENCE levam em consideração a diferenciação entre maiúsculas e minúsculas e o local do banco de dados para a resolução de curingas. Para bancos de dados que são criados com distinção entre maiúsculas e minúsculas ou sem distinção entre maiúsculas e minúsculas, o curinga corresponde ao nome e à maiúsculas e minúsculas exatos. Por exemplo, se o banco de dados diferenciar maiúsculas de minúsculas, SCHEMA.TABLE corresponderá a SCHEMA.TABLE, Schema.Table corresponderá a Schema.Table e assim por diante. Se o banco de dados não fizer distinção entre maiúsculas e minúsculas, a correspondência não fará distinção entre maiúsculas e minúsculas.

Para bancos de dados que podem ter nomes de objetos com distinção entre maiúsculas e minúsculas e sem distinção entre maiúsculas e minúsculas na mesma instância do banco de dados, com o uso de aspas para impor a distinção entre maiúsculas e minúsculas, a curinga funciona de forma diferente. Quando usado sozinho para um nome de origem em uma instrução TABLE, um caractere curinga de asterisco corresponde a qualquer caractere, quer o asterisco esteja entre aspas ou não. As instruções a seguir produzem os mesmos resultados:

TABLE hr.*;
TABLE hr."*";

Da mesma forma, um curinga de ponto de interrogação usado sozinho corresponde a qualquer caractere, esteja ou não entre aspas. Os itens a seguir produzem os mesmos resultados:

TABLE hr.?;
TABLE hr."?";

Se um curinga de ponto de interrogação ou asterisco for usado com outros caracteres, a distinção entre maiúsculas e minúsculas será aplicada aos caracteres não curinga, mas o curinga corresponderá a nomes com distinção entre maiúsculas e minúsculas e sem distinção entre maiúsculas e minúsculas.

TABLE hr."abc*";
TABLE hr."abc?";
TABLE hr.abc*;
TABLE hr.abc?;

Regras para Usar Curingas para Objetos de Destino

Ao usar curingas na cláusula TARGET de uma instrução MAP, os objetos de destino devem existir no banco de dados de destino. (A exceção ocorre quando a replicação DDL está sendo usada, o que permite que novos esquemas e seus objetos sejam replicados à medida que são criados.)

Para objetos de destino, somente um asterisco pode ser usado. Se um curinga de asterisco for usado com um nome parcial, o Replicat substituirá o curinga pelo nome inteiro do objeto de origem correspondente. Portanto, especificações como as seguintes são incorretas:

HQ.T

Os mapeamentos anteriores produzem resultados incorretos, porque o curinga na especificação de destino é substituído por T_TEST (o nome de um objeto de origem), tornando todo o nome de destino T_T_TESTn. O seguinte ilustra os resultados incorretos:

Os exemplos a seguir mostram o uso correto de curingas de asterisco.

MAP HQ.T_*, TARGET RPT.*;

O exemplo anterior produz os seguintes resultados corretos:

Mapeamento de nomes de fallback

O Oracle GoldenGate tem um mecanismo de mapeamento de fallback no caso de um nome de origem não poder ser mapeado para um nome de destino. Se não for possível encontrar uma correspondência exata no destino para um objeto de origem com distinção entre maiúsculas e minúsculas, o Replicat tentará mapear o nome de origem para o mesmo nome em letras maiúsculas ou minúsculas (dependendo do tipo de banco de dados) no destino. O mapeamento de nomes de fallback é controlado pelos parâmetros NAMEMATCH. Para obter mais informações, consulte Referência de Parâmetros e Funções do Oracle GoldenGate.

Asteriscos ou Marcas de Pergunta como Literais em Nomes de Objetos

Se o nome de um objeto em si incluir um asterisco ou um ponto de interrogação, o nome inteiro deverá ter escape e ser colocado entre aspas duplas, como no exemplo a seguir:

TABLE HT."\?ABC";

Como os curingas são resolvidos

Por padrão, quando um nome de objeto é curinga, a resolução desse objeto ocorre quando a primeira linha do objeto de origem é processada. (Por outro lado, quando o nome de um objeto é declarado explicitamente, sua resolução ocorre na inicialização do processo.) Para alterar as regras de resolução de curingas, use o parâmetro WILDCARDRESOLVE. O padrão é DYNAMIC.

Excluindo Objetos de uma Especificação Curinga

Você pode combinar o uso de seleção de objeto curinga com exclusão de objeto explícito usando os parâmetros EXCLUDEWILDCARDOBJECTSONLY, CATALOGEXCLUDE, SCHEMAEXCLUDE, MAPEXCLUDE e TABLEEXCLUDE.