在Oracle中,想通过查询语句得出结果集,获得该结果集的表头。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Oracle中,想通过查询语句得出结果集,获得该结果集的表头。相关的知识,希望对你有一定的参考价值。

如语句:select u_account,state.sum(render_money) sum_money,count(render_money) count_money from table t group by u_account,state order by u_account
得到的结果集,现在想获得表头字段名称。

查询数据字典获取列名信息:
select * from user_tab_columns where table_name = your_table_name

用存储过程把纵向的列名转为横向的列名串,然后与数据合起来,这一步自己想了
参考技术A select u_account,state.sum(render_money) sum_money,count(render_money) count_money from table t where 1=0 group by u_account,state order by u_account追问

我不是想获得没有数据的表头,想获得带有表头字段名称的查询结果集,或者从查询结果集中获得表头字段名称

追答

字段名你不是都写的了吗

追问

这是个例子...查询语句是动态生成的...因此字段名都是不确定的,想获得字段名

追答

你想在客户端,还是服务端,何种方式读取?

参考技术B 这个你可以自己用union all并一个表头呀,直接跟结果集一起不就OK了吗,其它方式我还没尝试过,如果你有好的方法给我借鉴下,呵呵。追问

并一个表头?那表头怎么获得?

追答

这个有点困难,如果是表里面的列或视图的列还可以根据数据字典来查,但有自定义列就不行了,目前我还没想到有什么方法来取,如果是java里面取表头是有方法的。

oracle 存储过程中 如果用if语句判断一条查询语句的结果集是不是为空

oracle 存储过程中 如果用if语句判断一条查询语句的结果集是否为空。
希望的效果是:判断If (查询结果为空),then 创建一条记录。

参考技术A 已经经过测试,可以。

create table test1023(id int); --创建测试表 test1023

declare cnt int;
begin
select count(*) into cnt from test1023;
if cnt=0 then
insert into test1023 values('1');
commit;
end if;
end;本回答被提问者采纳

以上是关于在Oracle中,想通过查询语句得出结果集,获得该结果集的表头。的主要内容,如果未能解决你的问题,请参考以下文章

oracle 存储过程中 如果用if语句判断一条查询语句的结果集是不是为空

关于oracle中table函数的使用

oracle数据库,通过plsql developer查询出的多个结果集,怎么对结果集重新命名

MySql查询具体某个时间段数据,结果集如何补全该时间段的所有记录并且标记为空值(时间显示除外)

oracle中拼接查询语句

Oracle SQL