如何在 Oracle 19c SQL Plus 中格式化输出?

How to format the output in Oracle 19c SQL Plus?

您好,我正在尝试将此 select 的输出格式化为看起来像 table,其中的列不是彼此重叠,而是彼此相邻,并且值是在正确的列下。

对于绝大多数情况,您最好使用像 SQL Developer 这样的 GUI 来 运行 您的查询,它会以视觉上令人愉悦的方式自动格式化结果。

但是,在 SQL*Plus 中,您可以针对每一列确定要在输出中使用的字符数。我猜你的输出 window 是 80 个字符宽,所以你希望分配给所有列的总宽度小于 80 个字符。这样的事情似乎可行(至少对于您显示的数据而言)但如果您的值比我在某些列中猜测的更长,则会换行。你可能会也可能不会接受,比如说,跨两行显示更长的约束名称

column owner format a15
column constraint_name format a20
column table_name format a15
column column_name format a15
column position format 999

请记住,SQL*Plus 格式化命令最初设计用于生成报告,这些报告被假脱机发送到装满可爱的白色和绿色条形纸的物理打印机,而不是供开发人员使用 运行 随机临时查询。这就是 GUI 的设计目的。