Como configurar formato de campo data com JDBC / Oracle?

2 respostas
B

Olá !

Por favor, me ajudem a descobrir aonde OU como faço a configuração do formato de campo data para acessar o ORACLE via JDBC.

Durante o desenvolvimento o formato utilizado para comandos SQL com data era o seguinte:
SELECT CAMPO FROM TABELA WHERE DATA = ‘10-DEC-2004’

E funcionava corretamente.

Quando colocado no servidor de produção, o comando apresentou erro do ORACLE: not a valid month

Mudei o formato para o seguinte:
SELECT CAMPO FROM TABELA WHERE DATA = ‘10/12/2004’

E VOLTOU funcionar corretamente.

Ontem, o administrador executou uma atualização do Java sugerida pela ferramente de auto-update e os comandos com data voltaram a apresentar o erro do ORACLE: not a valid month

A solução foi mudar o formato novamente :
SELECT CAMPO FROM TABELA WHERE DATA = ‘10-DEZ-2004’

E VOLTOU funcionar corretamente.

Vale lembrar que esta aplicação roda em Windows2003.
Acessa diretamente a base de dados Oracle.
Não esta instalada em nenhum tipo de servidor de aplicação (TOMCAT/…).
O formato de data no SQL*PLUS, sempre foi 12-DEC-2004, com formato explicito no regedit do servidor como DD-MON-YYYY e o LANGUAGE esta AMERICAN.

O que fazer ?

Obrigado

2 Respostas

eltonk

Force a máscara :wink:

De uma olhada nas funções to_char e to_date no oracle…

select to_char(sysdate,'dd/mm/yyyy') from dual

ou

select data from tabela where data = to_char('24/12/04','dd/mm/yy')

Faças uns testes… de uma olhada… se você utilizar esse esquema, não há necessidade de se preocupar com o banco…

[]'s

B

Obrigado pela dica.

Porem a minha aplicação não pode ser sensível ao banco de dados, pois, deverá rodar em outros bancos alem do Oracle.

Por isto, existe um parametro indicando o banco de dados corrente e qual formato esta sendo utilizado. Isto ja esta parametrizado e funcionando.

O problema é a “surpresa” de qual formato será utilizado.
Como não sei aonde configurar, não tenho como saber de vai funcionar antes de testar e apresentar o erro e perder tempo descobrindo qual o formato atual.

Obrigado.

Criado 24 de dezembro de 2004
Ultima resposta 27 de dez. de 2004
Respostas 2
Participantes 2