【问题标题】:How to align SQL Query result?如何对齐 SQL 查询结果?
【发布时间】:2019-08-12 21:58:10
【问题描述】:

我试图找到一个解决方案,但似乎没有被问到(如果有请给我一个 URL)

例如当我尝试查询时

select name, value from V$PARAMETER;

我得到了这个乱七八糟的结果

【问题讨论】:

  • 你还问什么?见这里-dba.stackexchange.com/questions/54149/…
  • 对不起,如果不清楚,我想问的是如何使 2 个值(名称和值)只在 1 行中,因为它目前在 2 中,就像值一样,有没有办法显示它正确对齐?
  • 您的问题实际上是关于您用于与数据库交互的程序的功能,而不是数据库本身。您在使用什么 - SQL*Plus?蟾蜍? SQL开发者?还有什么?每个都有其用于格式化查询输出的设置。
  • 但是请注意,(至少在我的系统上)v$parameter 视图中最长的 name 长度为 43 个字符,最长的 value 长度为 102 个字符。因此,如果您希望每一行都是一行,则至少需要长度为 146 的行(以允许列之间有空格)。可以吗?
  • 经常被问到; here's one example 但还有很多其他的,

标签: oracle sqlplus


【解决方案1】:

如果您使用的是 sqlcl,则可以使用“set sqlformat ansiconsole”或“format aXX”,例如

SQLcl: Release 4.2.0.16.153.2014 RC 

SQL> set sqlformat ansiconsole
SQL> select name, value from V$PARAMETER;
NAME                          VALUE                                                        
lock_name_space               NULL                                                         
timed_statistics              TRUE                                                         
timed_os_statistics           0                                                            
resource_limit                TRUE                                                         
license_max_sessions          0                                                            
license_sessions_warning      0                                                            
cpu_count                     2                                                            
instance_groups               NULL                                                         
event                         NULL                                                         
sga_max_size                  838860800                                                    
use_large_pages               TRUE                                                         
pre_page_sga                  TRUE 

SQL> set sqlformat default
SQL Format Cleared


SQL> col name format a40
SQL> col value format a40
SQL> select name, value from V$PARAMETER;

NAME                                     VALUE                                   
---------------------------------------- ----------------------------------------
lock_name_space                          NULL                                    
processes                                300                                     
sessions                                 472                                     
timed_statistics                         TRUE                                    
timed_os_statistics                      0                                       
resource_limit                           TRUE                                    
license_max_sessions                     0                                       
license_sessions_warning                 0                                       
cpu_count                                2                                       
instance_groups                          NULL                                    
event                                    NULL                                    
sga_max_size                             838860800 
...

另见:documentation(SQLplus,格式化列),sqlcl 示例here。 SQL*Plus 样式的格式似乎也适用于 sqlcl。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-23
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2018-12-08
    相关资源
    最近更新 更多