Lax*_*nge 4 java sql oracle jdbc
我有一个使用各种联接的查询,我只需要该查询返回的列的列表。我在java中完成了它,通过只询问rownum = 1的一行并获取值的列名。问题是该查询是否没有返回数据。
对于前。
select * from something
Run Code Online (Sandbox Code Playgroud)
如果此查询返回任何数据,则它将返回col1, col2, col3。但如果该查询没有返回数据,则会抛出错误。
我需要的是
有什么办法可以让我跑步
desc (select * from something)
Run Code Online (Sandbox Code Playgroud)
或类似于获取查询返回的列列表。
可以是sql,也可以是JAVA。两种方法都是可以接受的。
在我的应用程序中,用户传递查询,我可以向查询添加包装器,但我无法完全修改它。
申请流程为
来自用户的查询 -> 由 java 执行并获取一行 -> 返回结果集中的列列表。
小智 6
您可以使用 结果集的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));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
722 次 |
| 最近记录: |