- Este tópico contém 6 respostas, 3 vozes e foi atualizado pela última vez 11 anos, 6 meses atrás por Fábio Prado.
-
AutorPosts
-
25 de abril de 2013 às 9:31 pm #105352Guilherme Vieira de StefaniParticipante
Boa tarde a todos,
Estou passando por algumas dificuldades relacionadas ao meu banco de dados. Uso um Oracle 11g instalado sobre um CentOS 6.2 64 Bits. Eventualmente, quando faço a atualização do nosso ERP que utiliza Delphi 11(se não me engano), ao utilizar partes do sistema que utilizem datas, o banco de dados(Atravez do ERP) emite a seguinte mensagem:
ORA-01843: not a valid month
Reinicializo o servidor do banco e o problema é resolvido. O que aparentemente, elimina a possibilidade de um formato de entrada de dados incorreto.
Se alguem tiver alguma ideia agradeço desde já.
Att. Guilherme Vieira de Stéfani
25 de abril de 2013 às 9:44 pm #105353rmanParticipante@spinalsc
Isso pode ser configuração do cliente Oracle ou Sistema Operacional.
Você está usando o Client ou Instant Client?
Windows Ingles ou Português?
Verifique se o Windows está configurado para reconhecer o formato de data e hora como Português (Brasil) e o Local está como Brasil, consulte Região e Idioma no painel de controle (Windows 7). Modifique a mascara da data conforme necessário.
Se for Instant Client é necessário configurar a variável de ambiente NLS_LANG com o seguinte valor: BRAZILIAN PORTUGUESE_BRAZIL.WE8MSWIN1252
Se for Client Oracle essa configuração está em um registro do regedit.exe, se as configurações do formato de data e hora e o local não foram configuradas corretamente no momento da instalação do Client, configure e reinstale o client Oracle.
25 de abril de 2013 às 10:15 pm #105354Guilherme Vieira de StefaniParticipanteNa realidade, o sistema apresenta a mensagem: ORA-03114: not connected to Oracle mas eu consigo continuar fazendo outras consultas pelo sistema, ou seja, ele não perde conexão realmente com o banco.
Outro ponto, não é usado o client nem o instant cliente, o sistema precisa ter as DLL’s oraociei11.dll e oci.dll, e tenho que criar as variáveis de ambiente
NLS_LANG: american_america.we8mswin1252
tns_admin: C:SistemasNOME_DO_SISTEMAC (onde está o TNSNAMES.ORA)Windows, Oracle e Linux em Portugues.
Sobre a máscara da data, não acredito que seja o problema pois reiniciando o servidor do banco de dados o problema não voltou a acontecer. Caso o problema fosse esse, ao meu ver, persistiria.
Obrigado Rman
25 de abril de 2013 às 10:22 pm #105355rmanParticipante@spinalsc
NLS_LANG: american_america.we8mswin1252 ? Realmente é isso ? Não deveria ser BRAZILIAN PORTUGUESE_BRAZIL.WE8MSWIN1252 ?
Como está configurado la em Região e Idioma? Qual é o formato da data que o seu sistema deve utilizar?
As dll são do Instant Client.
25 de abril de 2013 às 10:47 pm #105356Guilherme Vieira de StefaniParticipanteRman,
O formato de Data lá em configurações regionais da minha máquina(e dos outros servidores de aplicação) está: dd/MM/aaaa que aparentemente é o formato do sistema.
Sobre a variável de ambiente NLS_LANG, confesso que segui orientação da Software House e não questionei. Esta variável também está no banco de dados? Posso conferir se são as mesmas entre si? Confesso desconhecer isto.
Att
25 de abril de 2013 às 11:25 pm #105357rmanParticipante@spinalsc
As configurações entre client e server não precisam estar iguais, se cada um for configurado adequadamente, a conversão é feita automática.
Mas caso queira verificar, segue as VIEWs, NLS_DATABASE_PARAMETERS, NLS_INSTANCE_PARAMETERS, NLS_SESSION_PARAMETERS. Existe uma ordem de hierarquia, NLS_SESSION_PARAMETERS sobreescreve NLS_INSTANCE_PARAMETERS que sobrescreve NLS_DATABASE_PARAMETERS.
O NLS_LANG é composto por NLS_TERRITORY, NLS_LANGUAGE e NLS_CHARACTERSET.
1 de maio de 2013 às 2:21 am #105366Fábio PradoParticipante@spinalsc
Uma dica que já utilizei p/ resolver este problema é criar uma trigger de logon para o usuário de BD do sistema, que executa um código para formatar a mascara de data que o seu sistema trabalha, como por exemplo: ALTER SESSION SET NLS_DATE_FORMAT = 'dd/mm/yyyy hh24:mi:ss';
De qq forma sugiro também a leitura do artigo http://www.fabioprado.net/2012/11/configurando-national-language-support.html para vc entender melhor as configurações de NLS.
[]s
-
AutorPosts
- Você deve fazer login para responder a este tópico.