Database 如何指定Oracle数字的精度/比例JDBC元数据?
我需要强制结果列的精度和比例,对货币值进行自定义格式设置(我假设每个数字(*,2)都是货币值)。 考虑下面的查询:Database 如何指定Oracle数字的精度/比例JDBC元数据?,database,oracle,jdbc,Database,Oracle,Jdbc,我需要强制结果列的精度和比例,对货币值进行自定义格式设置(我假设每个数字(*,2)都是货币值)。 考虑下面的查询: select cast(1234.56 as NUMBER(6,2)) from dual; 如有必要,它会进行预期的舍入,但结果元数据描述了一个精度和比例未指定的数字字段: System.out.println( rs.getMetaData().getScale(1) ); // prints 0; 我相信JDBC方面发生了一些奇怪的事情,因为下面的脚本确实返回了预期的数字
select cast(1234.56 as NUMBER(6,2)) from dual;
如有必要,它会进行预期的舍入,但结果元数据描述了一个精度和比例未指定的数字字段:
System.out.println( rs.getMetaData().getScale(1) ); // prints 0;
我相信JDBC方面发生了一些奇怪的事情,因为下面的脚本确实返回了预期的数字(6,2):
drop table temp;
create table temp as (
select cast(1234.56 as NUMBER(6,2)) x from dual
);
select * from temp;
这不应该吗
System.out.println( rs.getMetaData().getScale(1)); //For the first column
System.out.println( rs.getMetaData().getScale(2)); //For the second column
等等
你的代码
System.out.println( rs.getMetaData().getScale(0) ); //0th Column??
引自链接-
getPrecision
获取指定列的小数位数
参数:列-第一列为1,
第二个是2
返回:精度
抛出:SQLException-如果
发生数据库访问错误
这不应该吗
System.out.println( rs.getMetaData().getScale(1)); //For the first column
System.out.println( rs.getMetaData().getScale(2)); //For the second column
等等
你的代码
System.out.println( rs.getMetaData().getScale(0) ); //0th Column??
引自链接-
getPrecision
获取指定列的小数位数
参数:列-第一列为1,
第二个是2
返回:精度
抛出:SQLException-如果
发生数据库访问错误