PERMITIRNOOPUPDATES | NOALLOWNOOPUPDATES

Válido Para

Replicat

Descrição

Use ALLOWNOOPUPDATES e NOALLOWNOOPUPDATES para controlar como o Replicat responde a uma operação no-op. Uma operação no-op é aquela em que não há efeito na tabela de destino. A seguir estão alguns exemplos de como isso pode ocorrer.

Quando NOALLOWNOOPUPDATES é usado, o processo Replicat só será encerrado se as tabelas de origem e destino não tiverem uma chave definida ou se o processo Replicat não usar KEYCOLS. Nesses casos, em que a tabela de destino não tem uma chave exclusiva definida e uma operação de atualização é realizada em qualquer uma das colunas de origem, ocorre um erro semelhante ao seguinte:

Encountered an update for target table TELLER, which has no unique key defined. KEYCOLS can be used to define a key. Use ALLOWNOOPUPDATES to process the update without applying it to the target database. Use APPLYNOOPUPDATES to force the update to be applied using all columns in both the SET and WHERE clause.

Você pode usar o parâmetro APPLYNOOPUPDATES para forçar o UPDATE a ser aplicado. APPLYNOOPUPDATES substitui ALLOWNOOPUPDATES. Se ambos forem especificados, o Replicat aplicará atualizações para as quais há colunas-chave para as tabelas de origem e de destino.

Se ALLOWNOOPUPDATES for especificado quando o parâmetro HANDLECOLLISIONS ou INSERTMISSINGUPDATES estiver sendo usado e se o Oracle GoldenGate tiver todos os valores de chave de destino, o Oracle GoldenGate aplicará uma UPDATE usando todas as colunas da tabela na cláusula SET e na cláusula WHERE (chamando o comportamento APPLYNOOPUPDATES). Isso é necessário para que o Oracle GoldenGate possa determinar se a linha está presente ou ausente. Se estiver ausente, o Oracle GoldenGate converterá o UPDATE em um INSERT.

Padrão

NOALLOWNOOPUPDATES

Sintaxe

ALLOWNOOPUPDATES | NOALLOWNOOPUPDATES