什么Java数据类型对应于Oracle SQL数据类型NUMERIC?
Oracle JDBC驱动程序为Oracle SQL数据类型NUMERIC
分配了哪些Java数据类型? 这是否随NUMERIC
类型的大小而变化?
正如其他人已经说过的那样:驱动程序将所有内容映射到BigDecimal,即使它被定义为NUMBER(38)(可以映射到BigInteger)
但是很容易找出驱动程序映射的内容。 只需在ResultSet的列上执行getObject(),然后查看驱动程序生成的类。
就像是:
ResultSet rs = statement.executeQuery(“从the_table中选择the_number_column”); if(rs.next()) { Object o = rs.getObject(1); System.out.println(“Class:”+ o.getClass()。getName()); }
根据Oracle文档,它是java.math.BigDecimal
。
“但是我对BigDecimal的演员抛出了ClassCastException”
你尝试过使用oracle.sql.NUMBER
吗?
已经有一段时间了,但我相信它是Java中的BIGINT。 这是BigDecimal。 我记得你遇到的classcastexception会给出一个提示……