所以,我知道我可以通过查询选择列名称:
SELECT column_name FROM ALL_TAB_COLS WHERE table_name = 'MY_TABLE_NAME'
如果我使用rownum = 1
...
OUTPUT: sz.price
我必须使用它,因为它是EAS(企业软件)中的查询。如果我不使用它-> subquery returns more than one row
我如何获取MY_TABLE_NAME
中的所有列名都提取到一行?
expected OUTPUT: sz.price, sz.column2, sz.column3, ....
版本:Oracle数据库11g 11.2.0.4.0
答案 0 :(得分:2)
您可以使用listagg
select listagg(column_name, ',' ) within group (order by column_name) as "columns"
from all_tab_columns
where table_name = 'MY_TABLE_NAME';
答案 1 :(得分:1)
这将起作用:
select listagg(col_name, ',') WITHIN GROUP (ORDER BY col_name)from(SELECT column_name
FROM ALL_TAB_COLS WHERE table_name = 'MY_TABLE_NAME');