É o seguinte… estou dando manutenção em uma aplicação que está com problema de casas decimais ao preencher um arquivo de exportação.
O que acontece é que no código tem um SELECT que lê diversos campos do tipo NUMBER no Oracle mas não faz a conversão deles no código, ou seja, não tem o NumberFormat + Locale antes de escrever o valor no arquivo.
A primeira solução seria colocar o Format nesses campos, mas é que não tenho acesso ao fonte mais atual do programa e nem o pessoal que estou ajudando possui isso. Me disseram ser um programa antigo e começou a ocorrer isso depois que mudaram de servidor.
Bom… olhando o servidor percebi que é um linux e está apenas com o idioma inglês. Como isso não ocorria antes, acredito ser uma configuração de algum parameter do Oracle mesmo, onde posso setar para ela me retornar o valor com duas casas decimais. Como tentativa instalamos o idioma português no Linux, mas o Oracle manteve a configuração de instalação.
Alguém saberia me dizer qual parâmetro seria esse ou se é alguma outra configuração no Oracle10g?
(escrevendo esse post me surgiu a idéia de mexer nas configurações regionais do sistema, logo mais posto o que ocorreu)
(tentando não deixar o post morrer)
Fiz alguns testes em relação as configurações regionais e não tive sucesso…
Em desespero usei o seguinte código para salvar os valroes no campo NUMBER do banco:
TO_CHAR(valor, ‘999999990D99’)
Se eu ler esse mesmo valor da mesma forma consigo as duas casas decimais… mas se fazer um select sem qualquer formatação continuo tendo apenas uma casa, o que me gera os erros.
Ainda tenho algumas idéias em mente que vou tentar…
Não achei uma solução direto pelo banco para me retornar os valores com duas casas. A solução foi modificar o código fonte para tratar os valores retornardos usando FormatNumber e Locale (depois de muito sacríficio para conseguir esse fonte).
Cara… vlw a dica… vou testar essa sua idéia mais para conhecimento mesmo… porque não vai rolar pedir pros caras mexerem nisso, ainda mais depois de ter resolvido com o uso do locale e format…
Se der certo com esse cast, vou ter mais uma forma de ajudar nas manutenções… que é o que tenho feito e muito ultimamente… tô me sentindo um bombeiro… ^^