Oracle JDBC驱动程序为Oracle SQL数据类型NUMERIC
分配了哪种Java数据类型?这是否会因NUMERIC
类型的大小而异?
答案 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会提示......