Quando Shareplex é configurado para replicar todas as DDLs, o processo de post para pelo erro ORA-01843: não é um mês válido, quando a DLL em questão possui colunas do tipo date.
Por exemplo este é um comando DLL parcial executado no SOURCE:
from r474 a
where a.tr_erech = '31 dec 2010'
and a.kod_hishtatfut <>0
and a.kod_buza_shiaruch <> 999
Quando os processos do Shareplex(capture, read e poster) logam no banco de dados, a primeira coisa que eles fazem é um "alter session set nls_date_format = "MMDDYYYYHH24MISS";". Como resultado, eles esperam uma coluna de data no formato: "MMDDYYYYHH24MISS".
Diferente de comandos DML que os processos do Shareplex irão capturar, fazer o parse e reconstrui-los na sintaxe correta, Shareplex captura DDL como elas são e envia para o servidor Target. Como resultado, todo comando DDL que não tem o formato correto citado acima, dependendo da configuração do parametro SP_OPO_STOP_ON_DDL, o processo de post pode sair ou exibir um erro e continuar processar a mensagem.
1 - No servidor Source, antes de enviar o comando DDL, faça um: "alter session set nls_date_format = "MMDDYYYYHH24MISS" e use a sintaxe correta para o formato de data.
2 - No servidor Target:
sp_ctrl>set param SP_OPO_STOP_ON_DDL 0
Este parametro com valor 0 faz com que o processo de post nao pare quando ocorrer um erro de DDL, e isso se aplica a todos os comandos DDL enviados do servidor de Source para o servidor de Target.
© ALL RIGHTS RESERVED. Terms of Use Privacy Cookie Preference Center