【发布时间】:2012-10-18 19:56:03
【问题描述】:
我需要强制结果列的精度和比例,以对货币值进行自定义格式化(我假设每个 NUMBER(*,2) 都是货币值)。 考虑以下查询:
select cast(1234.56 as NUMBER(6,2)) from dual;
如有必要,它会进行预期的舍入,但结果元数据描述了一个具有未指定精度和比例的数字字段:
System.out.println( rs.getMetaData().getScale(1) ); // prints 0;
我相信 JDBC 端发生了一些奇怪的事情,因为以下脚本确实按预期返回了 NUMBER(6,2):
drop table temp;
create table temp as (
select cast(1234.56 as NUMBER(6,2)) x from dual
);
select * from temp;
【问题讨论】: