java - sql查询中的列列表

标签 java sql oracle jdbc

我有一个使用各种连接的查询,我只需要该查询返回的列列表。我是用 Java 完成的,只询问行数 = 1 的一行并获取值的列名。问题是该查询是否没有返回数据。

例如

select * from something

如果此查询返回任何数据,则它将返回 col1col2col3。 但如果此查询没有返回数据,则会抛出错误。

我需要的是

有什么办法可以运行

desc (select * from something)

或类似于获取查询返回的列列表。

可以是sql也可以是JAVA。两种方法都可以接受。

在我的应用程序中,用户传递查询,我可以向查询添加包装器但我不能完全修改它。

申请流程是

从用户查询 -> 通过 java 执行并获取一行 -> 返回结果集中列的列表。

最佳答案

你可以使用ResultSetMetaData结果集

例如:

 ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2"); 
 ResultSetMetaData rsmd = rs.getMetaData();  
 int countOfColumns = rsmd.getColumnCount();
 for(int i = 1; i <= countOfColumns ; i++  )
 System.out.println(rsmd.getColumnName(i));

关于java - sql查询中的列列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31914219/

相关文章:

java - Minium 使用胶水和浏览器抛出错误

java - Spring AuthenticationFailureHandler 和 WebSecurityConfigurerAdapter loginPage()

python - 为什么 MySQL 将 acuñar 注册为 acunar 的重复条目?

sql - PostgreSQL 有效地找到线性列表中的最后一个后代

oracle - 如何翻译 Apex 中的默认错误消息?

oracle - ORA-04091 : table xx_xx is mutating, 触发器/函数可能看不到它

java - Spring 的上下文命名空间是如何工作的?

mysql - 带文本的 dbSendQuery INSERT 语句

regex - 如何从 PL/SQL 中的字符串中删除所有非字母字符?

java - 内部类非final变量java