什么Java数据类型对应于Oracle SQL数据类型NUMERIC?

时间:2010-08-17 16:05:23

标签: java sql oracle types sqldatatypes

Oracle JDBC驱动程序为Oracle SQL数据类型NUMERIC分配了哪种Java数据类型?这是否会因NUMERIC类型的大小而异?

3 个答案:

答案 0 :(得分:11)

正如其他人已经说过的那样:驱动程序将所有内容映射到BigDecimal,即使它被定义为NUMBER(38)(可以映射到BigInteger)

但是很容易找出驱动程序映射的内容。只需在ResultSet的列上执行getObject(),然后查看驱动程序生成的类。

类似的东西:

ResultSet rs = statement.executeQuery("select the_number_column from the_table");
if (rs.next())
{
  Object o = rs.getObject(1);
  System.out.println("Class: " + o.getClass().getName());
}

答案 1 :(得分:2)

根据the Oracle documentation,它是java.math.BigDecimal


  

“但是我对BigDecimal的演员投了一个   ClassCastException异常“

您是否尝试过使用oracle.sql.NUMBER

答案 2 :(得分:1)

已经有一段时间了,但我相信它是Java中的BIGINT。它是BigDecimal。我记得你遇到的classcastexception会提示......