Olá,
estou tendo um problema em um select.
O erro apresentado é o seguinte:
java.sql.SQLSyntaxErrorException: ORA-01722: invalid number
Pesquisando, vi que é um erro simples, http://www.orafaq.com/wiki/ORA-01722, li em vários sites a explicação, mas ainda não encontrei o culpado.
Minha aplicação é um console, importador e exportador em java, com banco de dados Oracle, usando JDBC.
Não consegui reproduzir o erro até o momento,
fiz testes em minha máquina e em outros ambientes acessando uma cópia da base de produção,
sendo que essa base cópia, segundo o DBA está com as mesmas configurações da base de produção.
Resumindo o erro só ocorre quando a aplicação em produção tenta executar esse select, se eu pegar a sql preencher e executar funciona corretamente.
Já coloquei logs para me mostrar o conteúdo que estou setando nas cláusulas where, e estes aparentemente são os esperados e com tamanho correto.
O erro começou a ocorrer no início do mês, e tem vezes que executa a sql corretamente.
Um dos suspeitos da sql é essa subtração na data, mas porque o erro só ocorre de vez em quando?
PV.DT_CREDITO_PARCELA = to_date(?, ‘dd/MM/yy’)-?
Também identifiquei no join a comparação abaixo, onde pdv.nr_convenio, acaba sofrendo to_number pois na base é varchar,
pesquisei na base de produção por to_number(nr_convenio) from pdv, e não obtive erro:
CON.CD_CONVENIO = pdv.nr_convenio
Então minha dúvida é, como conseguir debugar essa sql dentro da aplicação, para poder realmente saber o que, e como está ocorrendo nas internas da execução do select?