- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 Oracle 的 JDBC 瘦驱动程序 (10.2.0.3) 连接到 Oracle 10g 数据库。我想获取有关数据库列的信息,所以我使用 ResultSetMetaData .我需要的最重要的信息是列的类型和长度,所以我使用 getColumnType , getPrecision , 和 getScale方法。
它适用于简单查询(select * from tablename
),如果列类型是“简单”的,比如 VARCHAR2(50), NUMBER(5), NUMBER(6,2)
。如果我有更复杂的查询(select count(*) from tablename
)或基于包含一些复杂计算的 View 的查询,这些方法会给出奇怪的结果,例如:
getScale
:-127getPrecision
和 getScale
都是 0getPrecision
: -1将 oracle.jdbc.J2EE13Compliant
连接属性设置为 true
(如多个网页所建议的那样)消除了 getScale=-127 但仍返回 0/0 结果。
很可能我必须为这些奇怪的结果创建一个解决方法,但首先我至少需要一份关于 Oracle 的 ResultSetMetaData 行为的综合文档。例如,对于所有 SQL 类型都具有 getPrecision/getScale 意义的巨大表会很棒。某处有这样的文档吗?
最佳答案
Oracle 无法返回基于 View 或 count(*)
的类型,因为它未明确声明。您的 View 可以根据 View 的底层表返回任何精度或比例。
要克服这个问题,您需要像这样在查询或 View 中转换类型:
select CAST (count(*) AS NUMBER(30))
关于java - 甲骨文 ResultSetMetaData getPrecision/getScale,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1410267/
我正在使用 tomcat7、java 1.6 通过 com.mysql.jdbc.Driver 访问 mysql 数据库。我打算从像 这样的表中获取元数据 java.sql.ResultSet set
我正在使用 Oracle 数据库。 我想使用 Java JDBC 为列分配默认值。 但是使用ResultSetMetaData并没有提供任何获取列默认值的方法。 所以请告诉我任何想法。提前致谢。 最佳
所以我一直在使用 Oracle 数据库使用 ResultSetMetaData。 我发现了一些我无法解释的奇怪现象。我有一个 FLOAT 列 - 定义为 FLOAT(63)。当我使用 SQLPLUS
我正在使用 Oracle 数据库。 我想使用 Java JDBC 将默认值分配给列。 但是使用 ResultSetMetaData 没有提供任何获取列默认值的方法。 所以请告诉我任何想法。提前致谢。
我使用的是 SQL Server 2005。 这是代码 private TableObject getTableObject(ResultSet rs, boolean raw) throws Tab
有没有办法获取在 JPA 中的实体管理器上执行 nativeQuery 返回的结果的 MetaData? 最佳答案 据我所知,没有办法获取结果集元数据,因为实际上没有办法获取结果集。但是,反过来:你想
我试图通过以下代码从 ResultSetMetaData 获取 TableName: `Properties info = new java.util.Properties();
我可以从 ResultSetMetaData获取表名吗查询是多个表的连接 示例 从表1、表2中选择* 当我尝试从 ResultSetMetaData 检索表名时我总是发现空值。 注意:我正在使用 in
我们可以在不使用 ResultSetMetaData 的情况下获取表列信息吗?目的。还有其他选择吗? 最佳答案 您可以通过调用 Connection.getMetaData() 来获取表的列信息,而无
我正在尝试从 PostgreSQL 数据库获取 SQL 查询中涉及的表。但是,getTableName 方法始终返回空字符串。这是我的代码的一部分: Connection conn = DriverM
我有一个名为 RATE_HISTORY 的表,其中包含一个名为 RATE 的字段。 RATE 字段的刻度为 18。 我正在使用 ResultsetMetaData 获取 Oracle 11.2 上此表
我正在 WAS 8.0.0.5 上开发一个与 DB2 数据库交互的应用程序。 我使用 java.sql.ResultSetMetaData 调用 getColumnName() 类获取列名称。在我的开
我的一位同事从网络上提取了一些代码,其功能如下: ResultSetMetaData rsmd = rs.getMetaData(); while (rs.next()) { count = rs
这个问题已经有答案了: JDBC ResultSet get columns with table alias (8 个回答) 已关闭 8 年前。 我想从 2 个表中获取列名,然后使用 ResultS
我有一个 ResultSetMetaData 对象。 PreparedStatement ps=con.prepareStatement("select var1, var2 from test1,
我有一个查询,其 getColumnTypeName 返回为 UNKNOWN但是当 getColumnType 被调用时它返回有效结果 92 TIME 我已经从 here 验证过了
我真的需要帮助。我正在尝试使用 ResultSetMetaData 和 ResultSet 从我的数据库中检索数据。我也在使用存储过程。该程序运行查找,但是当我运行它并期望从该行获得 3 个结果时,它
我正在使用 Oracle 的 JDBC 瘦驱动程序 (10.2.0.3) 连接到 Oracle 10g 数据库。我想获取有关数据库列的信息,所以我使用 ResultSetMetaData .我需要的最
我需要将一堆列名解析为列索引(以便使用一些不错的 ResultSetMetaData 方法)。但是,我知道如何获取 ResultSetMetaData 对象的唯一方法是在某些 ResultSet 上调
我正在尝试获取 resultsetmeta使用 Spring 的数据 jdbc模板。如果至少返回一行,它工作正常。 当没有返回的行即空 resultSet 时会出现问题. 我已经尝试了很多,但仍然坚持
我是一名优秀的程序员,十分优秀!