Pessoal estou tentando em um insert (no Oracle) passar um double para ser inserido em um campo number. É possível? Está dando erro e desconfio que o problema seja este.
Testei o insert direto no banco e funciona bem, no Java enrosca.
Vc pode inserir mas o numero perderá a precisão e ficará como inteiro.
Tem alguma forma de inserir preservando as casas decimais? Preciso de 2 casas após a vírgula de precisão.
Olá
Isso vai depender de como está configurado o seu campo Number na tabela do banco. Se o campo esta configurado como number(5,2) você tem uma precisão de 5 digitos(total de digitos decimais) e uma escala de 2 digitos(digitos a direita do ponto decimal) ou seja nesse campo você pode colocar o valor 999.99
Valeu, vou arrumar o campo aqui para gravar então.
Valeu.
Prq não transformar para float?
Alem do mais vc tera que ajustar sua aplicação imagine um numero 5,2 vc passando para int perderá a precisão tbm.
Use BigDecimal ao invés de double.
[quote=ramilani12]Prq não transformar para float?
Alem do mais vc tera que ajustar sua aplicação imagine um numero 5,2 vc passando para int perderá a precisão tbm.
[/quote]
Bom o Oracle não tem tipo Float somente Number e a precisão dele varia de 1 a 38 digitos…
[quote=Veronicaaa][quote=ramilani12]Prq não transformar para float?
Alem do mais vc tera que ajustar sua aplicação imagine um numero 5,2 vc passando para int perderá a precisão tbm.
[/quote]
Bom o Oracle não tem tipo Float somente Number e a precisão dele varia de 1 a 38 digitos…[/quote]
Como não tem?
Acabei de alterar aqui no Oracle , meu Oracle é 9
[quote=ramilani12][quote=Veronicaaa][quote=ramilani12]Prq não transformar para float?
Alem do mais vc tera que ajustar sua aplicação imagine um numero 5,2 vc passando para int perderá a precisão tbm.
[/quote]
Bom o Oracle não tem tipo Float somente Number e a precisão dele varia de 1 a 38 digitos…[/quote]
Como não tem?
Acabei de alterar aqui no Oracle , meu Oracle é 9[/quote]
Tem mesmo, me confundi! Na verdade sempre utilizei o Number!!
Pessoal estive aqui tentando implementar as dicas de vcs e o meu campo está como number (10,2) e preciso adicionar um double nele, porém quando executo o insert ele reporta a seguinte exception:
BatchUpdateException: ORA-01861: o literal não corresponde a string de formato
Mas pelo que vi aqui a precisão está correta. Alguém tem alguma dica?
Estranho ter dado este erro…
[quote]ORA-01861: literal does not match format string
Cause: Literals in the input string must be the same length as the literals in the format string, except for the leading white space characters. If the “FX” modifier is specified, the literal must match exactly, including the leading white space.
Action: Correct the format string to match the string literal.
[/quote]
Poste seu código. Talvez ajude o entendimento do pessoal.
Só um outro detalhe: os erros numerados entre 1800 e 1899 são todos referentes à data. Logo, este é um erro nas funções da data e não de números. Talvez isto te ajude.
Cara era isso mesmo. O problema estava na data.
Agora está funcionando.
Valeu.