ResultSetMetaData getScale返回0
我有一个名为RATE_HISTORY
的表, RATE_HISTORY
包含一个名为RATE
的字段。
RATE
字段的比例为18。
我正在使用ResultsetMetaData
来获取Oracle 11.2上此表中列的元数据。
我在我的代码中执行以下查询:
select (RATE * 100) from RATE_HISTORY
当我执行metadata.getScale()
,它返回0.但是,如果我执行此查询:
select RATE from RATE_HISTORY
getScale
返回正确的值(18)。
有没有办法在oracle中增加两个数字并保持规模?
将结果转换为选择也应该有效,缺点是您必须重复列定义中的比例:
select cast(RATE * 100 as number(30, 18)) from RATE_HISTORY
我怀疑这是因为比例是表列的工件,而不是数据本身。 从列值派生值时,会丢失该元数据。
如何使用
select RATE, (RATE * 100) from RATE_HISTORY
您可以从第一列获得比例,从第二列获得计算。
或者只是在java中进行乘法运算。