Oracle - 如何编写Query以使用管道分隔返回列标题名称?

azC*_*ats 2 oracle header pipe delimited

我想要一个Query来返回带有管道分隔的标题名称.我在网上找到了一些参考但是无法得到我想要的.

我想要这样的返回,不需要输出文件,只需要查询结果:

COLUMN1 |列2 |栏3 | column4 | ....... | columnN

我试过这个:SELECT/delimited/from tableName其中rownum <1; 使用F5以脚本身份运行.

"UPC", "UPC_DESCRIPTION", "ITEM_CODE", "DEPT_CODE"

但结果是以逗号分隔并具有引号括号. - 我不想要它.

实际上我有这么多列,是否有一个简单的方法/简单查询返回所有标题(管道分隔)而不需要手动输入每个?

谢谢你的帮助!!

Kac*_*per 5

你不能这样做:

select col1 || '|' || col2 || '|' || col3 || '|' || col4 || '|' || col5
  from table;
Run Code Online (Sandbox Code Playgroud)

您可以生成以下查询:

select 'select ' || LISTAGG(column_name , ' || ''|'' || ') within group (order by column_id) || ' from my_table' 
  from user_tab_columns 
  where table_name = 'MY_TABLE';
Run Code Online (Sandbox Code Playgroud)

如果您只想获得数据标题,请执行以下操作:

select LISTAGG(column_name, '|') within group (order by column_id)
      from user_tab_columns 
      where table_name = 'MY_TABLE';
Run Code Online (Sandbox Code Playgroud)