ERP – Gravação de Logs (E000LOG) – ORA-01483: invalid length for DATE or NUMBER bind variable
Incidente
Em processos que geram logs na tabela E000LOG, ao ser inserido um novo log na tabela é gerada a mensagem: Problemas ao gravar o registro de log (E000LOG) da tabela XX, sequencia XX, tipo XX, chave CodEmp = XX / CodFil = XX, usuário XX, data DD/MM/AAAA, hora XX. Mensagem: E000LOG: Erro de acesso ao banco de dados: Banco de Dados: Oracle XX. Erro do Banco (1483): ORA-01483: invalid length for DATE or NUMBER bind variable.
Outros exemplo de mensagem:
Erro na Ligação do Produto ao Depósito: Problemas ao gravar o registro de log (E000LOG) da tabela E210EST, sequencia XXXXX, tipo XX, chave CodEmp = X / CodPro = XX / CodDer = X / CodDep = XX, usuário XX, data DD/MM/AA, hora XX. Mensagem: E000LOG: Erro de acesso ao banco de dados: Banco de Dados: SQL Server 2019.
Observação
A mensagem pode ser um pouco diferente dependendo:
- Da rotina que está executando o processo de gravação de log;
- Da versão do banco de dados Oracle utilizada.
Causa
Essa situação ocorre quando:
- É utilizada rotina de gravação de Logs da Tela NF000LOG - Cadastros / Identificadores e parâmetros / Log / Consulta (Consulta de Log), tabela E000LOG, que por sua vez é ativada através do parâmetro global 'AtiGerLog' da tela NF000PGS - Cadastros / Identificadores e parâmetros / Parâmetros Globais (Manutenção dos parâmetros globais do Sistema);
- É utilizada a função GravaLog. Clique aqui para acessar a documentação completa da função GravaLog.
Solução
Para que a mensagem não ocorra, realize os passos a seguir:
1. Para busca de solução na causa raiz;
1.1. Realize uma análise inicial com relação à conectividade com banco de dados;
Importante
Existem situações mapeadas onde a situação ocorre devido a utilização do Cliente Oracle nas estações/servidores em versão diferente do banco de dados Oracle em si.
1.2. Acione o DBA responsável pelo ambiente para fazer a análise da situação, caso essa verificação indicada acima não solucione o problema;
2. Para contorno enquanto que a solução definitiva não é encontrada (o que depende de análise do DBA, conforme reportado no tópico 1):
1.1. Desative temporariamente a gravação de Logs do sistema parâmetro 'AtiGerLog' da tela F000PGS - Cadastros / Identificadores e parâmetros / Parâmetros Globais, como contorno.
Importante
Você deverá fechar e abrir o sistema depois de alterar esse parâmetro, bem como reiniciar o Middleware para processo envolvendo WebServices/Processos Agendados, para que o novo valor do parâmetro seja considerado pelo sistema.
1.2. Caso você utilize rotinas que utilizam a função GravarLog, altere a rotina customizada temporariamente para não acionar essa função no ponto em que está ocorrendo a situação.