oracle 数据类型之number

oracle 数据类型之number

事件起因经过结果

问题起因:oracle建表数据类型为integer,double precios、float、number、real、decimal时,通过jdbc连接,获取到的columntType均为number,导致转换成其它数据库建表语句时,无法正确映射类型.

原因:oracle中本不存在上述类型,上述类型都是number的变种类型。

解决方法:同时获取ResultSetMetaData中column的JavaColumnType,如果为java.math.BigDecimal,就判断ResultSetMetaData中对应column的precios,如果precios为0,就转化成integer,否则直接转化成float或者number类型。其他的类型转换可以使用类似方法。

PS:虽然解法不算完美。如有更好的,烦请指教

参考

oracle中number对应java数据类型

oracle中number对应的java数据类型

这里写图片描述