gpt4 book ai didi

Java ResultSetMetaData 返回不正确的列类型

转载 作者:行者123 更新时间:2023-12-01 21:34:31 25 4
gpt4 key购买 nike

所以我一直在使用 Oracle 数据库使用 ResultSetMetaData。

我发现了一些我无法解释的奇怪现象。我有一个 FLOAT 列 - 定义为 FLOAT(63)。当我使用 SQLPLUS 时,它确认这是一个 FLOAT(63)(TOAD 和我在 Perl 中编写的另一个脚本也是如此) - 但是,当我使用下面的代码在 Java 中查询此列时,它返回为 NUMBER(63) - 这是 ResultSets 的怪癖还是有我没有完成的配置?

顺便说一句,在我使用过的所有其他数据类型上它都工作得很好 - 只是这个很奇怪。

ResultSet rs=stmt.executeQuery("SELECT " + column + " FROM " + schemaTable + " WHERE ROWNUM = 1");
ResultSetMetaData rsmd = rs.getMetaData();

while(rs.next()) {
actualType = rsmd.getColumnTypeName(1);
actualPrecision = rsmd.getPrecision(1);

最佳答案

您无法在 Oracle 中定义 float 数据类型。您定义一个 real 数据类型,并将其转换为 Java 中的float

The recommended Java mapping for the REAL type is as a Java float.

参见more .

关于Java ResultSetMetaData 返回不正确的列类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37074545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com