Segundo a documentação ResultSetMetaData.getScale deveria retornar a quantidade de casas a direita da virgula.
No meu vem tudo 0, mas o campo é number(10,2)
estou usando oracle 8 e 10g
alguem ja teve esse problema?
Segundo a documentação ResultSetMetaData.getScale deveria retornar a quantidade de casas a direita da virgula.
No meu vem tudo 0, mas o campo é number(10,2)
estou usando oracle 8 e 10g
alguem ja teve esse problema?
Olá pessoal, esse é um post antigo, porém não foi respondido e tenho enfrendado este mesmo problema agora.
Alguem ja passou por isso ou sabe como resolver?
Preciso disso pois estou migrando um sistema e o BD (Oracle) ja esta montado. Os campos numericos tudo retornando NUMERIC pelo ResultSetMetaData, nada de INTEGER ou DECIMAL, entao preciso muito disso.
Valeu!
Estou tendo o mesmo problema, como vocês resolveram isso?!
descobri que isto esta ocorrendo pois meu select é um select com soma e group by “select sum(xxx) from aaa group by bbb;”
fazendo select simples da tabela ele funciona normalmente…
alguem tem alguma ideia de solução?!
Estou com o mesmo problema!! Buáá ninguém solucionou??
Não sei se ajuda mais eu traduzi apartir da documentação do java
public int getScale(int column)
throws SQLException
//Pega o numero designado de digitos para a direita do ponto decimal.
Parametros
column - A primeira coluna é 1, A segunda é 2, ...
Returns:
scale
Throws:
SQLException - Retorna caso ocorra algum erro no banco de dados.
mais se poder postar o erro que o console retorna seria mais facil.
Oi Vinicius,
Sim, a função do getScale seria retornar o número de casas decimais (após a vírgula), de forma que, se você passar um número inteiro, ele deve retornar 0 (não há casas decimais).
Porém, o problema que estamos tendo é que, se você fizer uma consulta no banco de dados cuja projeção retorne um campo de alguma tabela, beleza, o getScale funciona bonitinho!
Mas quando você retorna na projeção alguma coisa que não seja um campo - um SUM, por exemplo - o getScale sempre retorna 0, mesmo que haja casas decimais!
Exemplo: eu fiz um SUM dentro de uma SELECT e o resultado desta soma é, supomos, 47.92. se você der um getScale nesta coluna, ele retornará 0 Porém, se no meu SELECT eu retornar um campo de uma tabela qualquer que também tenha o mesmo valor, 47.92, o getScale funciona e retorna 2 corretamente!
Eu solucionei o problema da seguinte forma:
Eu recupero a coluna com um getBigDecimal, e utilizo o método scale() da classe java.math.BigDecimal. Ele nunca erra
Abraços!