| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/11/2010 16:25:25
|
PadrE
JavaEvangelist
![[Avatar]](/images/avatar/e80ba3de4e2f156e3bdf5b3596b36ca4.jpg)
Membro desde: 03/04/2006 00:01:40
Mensagens: 410
Offline
|
Olá pessoal,
É 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)
Vlw!
|
PadrecO
"O conhecimento o libertará !" |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/11/2010 14:02:41
|
PadrE
JavaEvangelist
![[Avatar]](/images/avatar/e80ba3de4e2f156e3bdf5b3596b36ca4.jpg)
Membro desde: 03/04/2006 00:01:40
Mensagens: 410
Offline
|
(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...
|
PadrecO
"O conhecimento o libertará !" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/12/2010 10:49:57
|
PadrE
JavaEvangelist
![[Avatar]](/images/avatar/e80ba3de4e2f156e3bdf5b3596b36ca4.jpg)
Membro desde: 03/04/2006 00:01:40
Mensagens: 410
Offline
|
Pessoal,
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).
vlw
|
PadrecO
"O conhecimento o libertará !" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/03/2011 12:45:32
|
Nirvana
Smalltalk
Membro desde: 30/03/2011 12:43:35
Mensagens: 1
Offline
|
Brother,
Tenta assim:
SELECT CAST(88 AS NUMBER(6,2)) FROM DUAL;
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/03/2011 20:58:32
|
PadrE
JavaEvangelist
![[Avatar]](/images/avatar/e80ba3de4e2f156e3bdf5b3596b36ca4.jpg)
Membro desde: 03/04/2006 00:01:40
Mensagens: 410
Offline
|
Opa..
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... ^^
Abrs
|
PadrecO
"O conhecimento o libertará !" |
|
|
 |
|
|