Oracle SQLPlus:在没有输出行时打印 header 中的列标题(显示 "no rows selected" 消息)

Oracle SQLPlus: print column titles in header when there is no output rows (showing "no rows selected" message)

我是 运行 来自 SQLPlus 命令行的 SQL 命令,没有任何行。

示例:

select * from users;

no rows selected

即使 table 中没有行,我也想 显示列名。

我试过了:

set heading on;

查询运行后仍然没有出现headers!

我想要一个直接的命令,而不是像在 start/end 查询的 start/end 处通过 union 连接虚假记录的技巧。

这不能在 SQL*Plus 中完成。

需要两行:

desc 用户

select * 来自用户;

如果这是为了输出报告,在 11g 中您可以关闭 SQL*Plus headers:

设置航向;

然后自己添加headers:

  SELECT listagg (column_name, ',') 
  WITHIN GROUP (ORDER BY COLUMN_ID) COLUMN_NAMES
  FROM USER_TAB_COLUMNS
  WHERE TABLE_NAME='Users';

然后发出数据查询:Select * from Users;

这至少意味着您总是得到 headers。