DDLSUBST
Válido Para
Extract e Replicat
Descrição
Use o parâmetro DDLSUBST para substituir strings em uma operação DDL. Por exemplo, você pode substituir um nome de tabela por outro ou substituir uma string nos comentários. A pesquisa não diferencia maiúsculas de minúsculas. Para representar uma aspa em uma string, use aspas duplas.
Diretrizes para o Uso de DDLSUBST
-
Não use
DDLSUBSTpara converter nomes de coluna e tipos de dados em algo diferente no destino. Alterar a estrutura de um objeto de destino dessa maneira causará erros quando os dados forem replicados para ele. Da mesma forma, não useDDLSUBSTpara alterar nomes de proprietário e de tabela em uma instruçãoDDLde destino. Sempre use uma instruçãoMAPpara mapear uma operaçãoDDLreplicada para outro objeto de destino. -
DDLSUBSTsempre é executado após o parâmetroDDL, independentemente de sua ordem relativa no arquivo de parâmetros. Como o filtro é executado primeiro, use critérios de filtragem compatíveis com os critérios que você está usando para substituição de string. Por exemplo, considere as seguintes instruções de parâmetro:
DDL INCLUDE OBJNAME fin.*
DDLSUBST 'cust' WITH 'customers' INCLUDE OBJNAME sales.*
Neste exemplo, nenhuma substituição ocorre porque os objetos nas instruções INCLUDE e DDLSUBST são diferentes. Os objetos de propriedade de fin estão incluídos na configuração DDL do Oracle GoldenGate, mas os objetos de propriedade de sales não.
-
Você pode usar vários parâmetros
DDLSUBST. Eles são executados na ordem listada no arquivo de parâmetros. -
Para o Oracle
DDLque inclui comentários, não use o parâmetroDDLOPTIONScom a opçãoREMOVECOMMENTS BEFOREse você estiver fazendo substituição de string nesses comentários.REMOVECOMMENTS BEFOREremove comentários antes que ocorra a substituição da string. Para remover comentários, mas permitir a substituição de string, use a opçãoREMOVECOMMENTS AFTER. -
Não há tamanho máximo de string para substituições, além do limite imposto pelo banco de dados. Se o tamanho da string exceder o limite do banco de dados, o processo Extract ou Replicat que está executando a operação será encerrado de maneira anormal.
Padrão
Sem substituição
Sintaxe
DDLSUBST '<search_string>' WITH '<replace_string>'
[INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>]
<'search_string'>
A string na instrução DDL de origem que você deseja substituir. Coloque a string entre aspas simples. Para representar uma aspa em uma string, use aspas duplas.
WITH
Palavra-chave obrigatória.
<'replace_string'>
A string que você deseja usar como substituição no destino DDL. Coloque a string entre aspas simples. Para representar uma aspa em uma string, use aspas duplas.
INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>
Especifica uma ou mais instruções INCLUDE e EXCLUDE para filtrar as operações DDL às quais as regras de substituição de string são aplicadas. Consulte "DDL Filtering Options" para obter sintaxe e uso.
Exemplos
Exemplo 1
A seguir, a string cust é substituída pela string customers para tabelas no esquema fin.
DDLSUBST 'cust' WITH 'customers'
INCLUDE ALL OBJTYPE 'table' OBJNAME fin.*
Exemplo 2
O seguinte substituirá um novo diretório somente se o comando DDL incluir a palavra logfile. Se a string de pesquisa for encontrada várias vezes, a string de substituição será inserida várias vezes.
DDLSUBST '/file1/location1' WITH '/file2/location2' INCLUDE INSTR 'logfile'
Exemplo 3
O seguinte usa várias instruções DDLSUBST, que são executadas na ordem mostrada.
DDLSUBST 'a' WITH 'b' INCLUDE ALL
DDLSUBST 'b' WITH 'c' INCLUDE ALL
O efeito de rede do precedente substitui todas as strings a e b por c.