返回给定表的列类型整数的查询
Posted
技术标签:
【中文标题】返回给定表的列类型整数的查询【英文标题】:Query that returns the column type integer for a given table 【发布时间】:2016-05-17 09:20:22 【问题描述】:JDBC 支持以下内容:
ResultSet columns = connection.getMetaData().getColumns(null, schema, tableName, null);
这样我可以检索给定表中所有列的信息,包括 DATA_TYPE 信息。该信息是 java 中的 int 类型。
我使用以下查询来检索列名和数据类型,但这会返回数据类型的字符串表示,我需要 int:
select column_name, data_type from all_tab_cols where table_name = 'tablename' and owner = 'owner';
这行 java 代码如何转换为 Oracle DB 中的查询? 如何检索列的 int 表示形式? 我会使用连接,但我不知道从哪里获取信息。 Oracle 将这些信息存储在哪里?
【问题讨论】:
Oracle 中的标准数字数据类型是 NUMBER。 int 和 float/double 之间没有区别。 (如果你很幸运,如果一列真的是整数,你会看到类似 NUMBER(8,0) 的东西,但这种情况相当少见。)你建议如何识别哪些列是 int 哪些是 float/双倍? 【参考方案1】:要在不使用任何 ORM 工具(如 hibernate)的情况下针对 DB 运行 SQL,您可以查看 PreparedStatement
类。
如果您想查看有关 PreparedStatement 返回的列的“元数据”,可以查看getMetaData()
方法,文档可以在here 找到,然后向 ResultSetMetaData 询问列类型:@ 987654326@documentation can be found here
关于您关于 Java 如何在 Oracle 中转换为 Query 的问题,它过于宽泛,无法在答案中进行描述。建议找个关于JDBC的教程或者官方tutorial。
【讨论】:
以上是关于返回给定表的列类型整数的查询的主要内容,如果未能解决你的问题,请参考以下文章