什么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会给出一个提示……