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中进行乘法运算。