Oracle JDBC 驱动程序将什么 Java 数据类型分配给 Oracle SQL 数据类型NUMERIC
?这是否随NUMERIC
类型的大小而变化?
问问题
13048 次
3 回答
11
正如其他人已经说过的那样:驱动程序将所有内容映射到 BigDecimal,即使它被定义为 NUMBER(38) (可以映射到 BigInteger)
但是很容易找出驱动程序映射的内容。只需在 ResultSet 的列上执行 getObject() 并查看驱动程序生成的类。
就像是:
ResultSet rs = statement.executeQuery("select the_number_column from the_table"); 如果(rs.next()) { 对象 o = rs.getObject(1); System.out.println("类:" + o.getClass().getName()); }
于 2010-08-17T16:21:37.477 回答
2
根据Oracle 文档,它是java.math.BigDecimal
.
“但我对 BigDecimal 的强制转换引发了 ClassCastException”
你试过使用oracle.sql.NUMBER
吗?
于 2010-08-17T16:13:22.710 回答
1
已经有一段时间了,但我相信它是 Java 中的 BIGINT。它是大十进制。我记得你遇到的 classcastexception 会给出提示......
于 2010-08-17T16:06:54.410 回答