zoukankan      html  css  js  c++  java
  • (转实用)Oracle SQL*PLUS命令应用 设置显示列格式的相关命令

    设置列格式的相关命令

    1. 改变列的显示长度 
    COLUMN column_name
    FOR[MAT] format 

    备注:  
      注意该命令将保持一直生效直至输入了一个新的格式值或者退出了SQL
    *PLUS, 其中字段类型可以为Char, Varchar2varchar。

    如果SQL
    *PLUS的WARP变量的值被设置为"开"(默认值), 那么字段的内容将会在format命令规定的长度处折行, 否则的话超过规定长度的后续字符将会被截取。

      如果你有多个相同显示属性的列需要设置,那么使用column 字段名 like 你想要复制显示属性的字段heading 字段名。注意如果不加上后面heading 字段名那么复制的时候连字段名都会复制过去,显然不适合一般要求。

       2
    . 格式化NUMBER类型列的显示 
    SQL
    > COLUMN SAL FORMAT $99,990 

    3
    . 显示列值时,如果列值为NULL值,用text值代替NULL值 
    COMM NUL
    [L] text 
    SQL
    >COL COMM NUL[L] text 

    4
    . 设置一个列的回绕方式 
    COLUMN WRA
    [PPED]|WOR[D_WRAPPED]|TRU[NCATED] 

    备注:此命令常和format合用,当列值过长时可以使用该命令格式话输出, wrapped根据字符长度控制, word_wrapped根据单词控制, truncated则直接截取等长字符。

      5. 清空当前所有列的设置,恢复成默认格式
      CLEAR COLUMNS


    下面我们来看一下这些命令的综合应用:

    SQL> desc testtable;
     Name                                      
    Null?    Type
     
    ----------------------------------------- -------- ----------------------------
     ID                                                 NUMBER
     NAME                                               
    VARCHAR2(20)
     REMARK                                             
    VARCHAR2(50)
     SALARY                                             
    NUMBER

    SQL
    > select * from testtable;

            ID NAME
    ---------- ----------------------------------------
    REMARK
    --------------------------------------------------------------------------------
        SALARY
    ----------
             1 paul

         
    99999


    现在我们要对这个输出进行修改,包括:

    ①分别设置输出列的长度为2、10、6、8
    ②分别设置输出列的列名居中
    ③格式化Salary列的值为$999,999
    ④将Remark列的空值替换为字符串User description
    ⑤设置Remark列的回绕方式为按单词回绕

    下面我们来看看这个SQL*PLUS命令应该如何写:

    SQL> column ID justify center
    SQL
    > column Name justify center format a10
    SQL
    > column Remark justify center format a6 NULL 'User description' word_wrapped
    SQL
    > column salary justify right format $999,999
    SQL
    > select * from testtable;

        ID        NAME    REMARK    SALARY
    ---------- ---------- ------ ---------
             1 paul       User     $99,999
                          descri
                          ption


    看看其中的SQL语句:

    Column Remark justify center format a6 NULL 'User description' word_wrapped。


    该句设置了:列名居中显示、列的长度为6个字符、空值用'User description'代替、按单词回绕(所以是在User处折行,而不是在User d出折行,虽然列的长度可以为6)

    设置页面及行格式的相关命令

    1.设置一行可以容纳的字符数 
    SQL
    > SET LIN[ESIZE] {80|n} 
    如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示。 

    2
    .设置一页有多少行数 
    SQL
    > SET PAGES[IZE] {24|n} 
    如果设为0,则所有的输出内容为一页并且不显示列标题 

       3.设置页与页之间的分隔 
    SQL
    > SET NEWP[AGE] {1|n|NONE} 
    当set newpage 
    0 时,会在每页的开头有一个小的黑方框。 
    当set newpage n 时,会在页和页之间隔着n个空行。 
    当set newpage none 时,会在页和页之间没有任何间隔。 

    备注:以上三个命令经常合用, 首先设置每行显示的最大长度, 再设置每页有多少行, 最后设置页间距. 如果要获取较好格式的话可以配合Column format命令格式化每个字段的长度. 


    下面我们来实地查看一下上述命令在结果输出中的应用

    SQL> select * from testtable;

            ID NAME       REMARK
    ---------- ---------- --------------------------------------------------
    REG_DATE       SALARY
    ---------- ----------
             1 paul lin
    07-6月 -08       5500

             
    2 bob lin    common user
    06-6月 -08       6500


    SQL
    > 


    下面我们要做的就是:

    ①调整页面最大显示长度为200
    ②设置每页只显示一条记录
    ③每页之间间隔两个空

    SQL> set linesize 200 pagesize 1 newpage 2;
    SQL
    > 
    SQL
    > /


             
    1 paul lin                                                      07-6月 -08       5500


             
    2 bob lin    common user                                        06-6月 -08       6500

    SQL
    > 


    可以看到页面的输出并不让人满意(标题和虚线都没有了),现在我们使用一种令人比较满意的设置:

    SQL> set linesize 200 pagesize 999 newpage;
    SQL
    > 
    SQL
    > 
    SQL
    > /
            ID NAME       REMARK                                             REG_DATE       SALARY
    ---------- ---------- -------------------------------------------------- ---------- ----------
             1 paul lin                                                      07-6月 -08            5500
             
    2 bob lin    common user                                 06-6月 -08            6500

    SQL
    > 


    实际上该命令的最后设置newpage会在每页的前面加上一个黑色的小方框(在这里不能显示),以提示这是新一页的开始,假如你不想进行任何的提示那么只要设置newpage为none就可以了(你所看到的输出和现在的一模一样)。

    至于linesize的设置则要考虑屏幕和打印机的大小了。

  • 相关阅读:
    idea maven install java: 程序包不存在
    Window10取消文件默认打开方式
    @ModelAttribute与@RequestBody的区别
    python小知识
    CentOS下yum方式安装FFmpeg
    推荐一款可以直接下载浏览器sources资源的Chrome插件
    如何在python中使用Elasticsearch
    python logging模块“另一个程序正在使用此文件,进程无法访问。”问题解决办法
    Python的伪造数据生成器:Faker
    docker修改系统时间总结
  • 原文地址:https://www.cnblogs.com/huozhicheng/p/2533183.html
Copyright © 2011-2022 走看看