java - ResultSetMetaData 返回 BigDecimal insted of int

标签 java jdbc

需要一些关于 jdbc 元数据的帮助。 我正在使用 ResultsetMetaData 获取 Oracle10g 上表列的元数据。我正在使用 ojdbc14.jar。表 ID 中有一个字段声明为 Number 。在运行时使用 jdbc 读取该字段以获取其元数据属性。 ResultSetMetaData.getColumnClassName() 正在返回 java.math.BigDecimal 而我期望它是 Integer 或 int 或 long 或 Long 类型。 我什至尝试使用语句创建表,并将 ID 列的 int 类型显式定义为

CREATE TABLE COST_DETAILS ( ID **INT** Primary Key...

但 ResultSetMetaData 仍在为 ID 列返回 BigDecimal。

有什么方法可以创建具有任何特定列类型的表,以便它重新运行 int/long 类型?

或者 ResultsetMetaData 总是为 Oracle 返回 BigDecimal。

最佳答案

我认为 Oracle 数字将始终映射到 BigDecimal,因为 Oracle 不会将它们存储为二进制 int,因此这是一个精确映射。 Oracle datatypesOracle JDBC您可以使 float 以二进制形式出现

关于java - ResultSetMetaData 返回 BigDecimal insted of int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1419109/

相关文章:

jdbc - 最新的 Firebird JDBC 驱动有病毒吗?

java - 如何通过java代码执行Oracle sql脚本

Java:HttpResponse header 从来没有 "Content-Encoding",但确实有 "Vary: Accept-Encoding"

java - 为什么线程释放锁后仍然运行?

java - Android中解析JSON数组和对象

java - Webview - 如何在旋转时停留在当前页面

mysql - Windows 中 JDBC-MySQL 的命名管道与 TCP

java - 通过 JDBC-ODBC 将数据插入 MS Access DB

java - 如何使 Eden Space 大小加倍 Tenured Space

java - Web 应用程序 DAL 中的 JDBC 数据库连接