sql >> データベース >  >> RDS >> Oracle

コマンドプロンプトでSELECTクエリからの出力をきれいにする方法は?

    画面に収まるように列幅を設定します

    例:

    column EMAIL_ADDR format a30 
    

    ここで、aは列幅です。 WRAを使用してcolumnegをラップできます

    column EMAIL_ADDR format a30 WRA
    

    またはTRU 切り捨てるには、WOR 単語の境界を破る

    例:

    SQL> select * from emp;
    
            ID FIRST_NAME
    ---------- ------------------------------
    LAST_NAME
    ------------------------------
    EMAIL_ADDR
    --------------------------------------------------
             1 Dazza
    Smith
    [email protected]
    

    したがって、email_addrが300文字に埋め込まれているため、出力を読み取るのは少し難しいです(私のテーブルでは、sql * plusが出力のフォーマットに使用するvarchar2(300)として定義されていたため)。

    最初に適切な線のサイズを設定します:

       SQL> set linesize 100 
    

    次に、1行に収まるように列を設定します(行サイズは列の合計幅よりも大きくする必要があります):

       SQL> column email_addr format a30 
       SQL> column last_name format a20 
       SQL> column first_name format a20 
       SQL> select * from emp;
    
                ID FIRST_NAME           LAST_NAME            EMAIL_ADDR
        ---------- -------------------- -------------------- ------------------------------
                 1 Dazza                Smith                [email protected]
    

    これで、カラムは適度なサイズの端子に簡単に収まります。

    あなたの場合、first_name およびlast_name varchar2(50)ですが、その中のデータははるかに小さいので、column first_name format a15から始めます。 (last_nameについても同じです)。メールの場合、列はvarchar2(100)ですが、最大サイズの出力は25文字なので、column email format a25 手始めに。

    これを行うと、次のような出力が得られます(行サイズが十分に大きい場合)。

    SQL> select * from xtern_empl_rpt ;
    
    EMP LAST_NAME       FIRST_NAME     SSN       EMAIL_ADDR                YEARS_OF_SERVICE
    --- --------------- -------------- --------- ------------------------- ----------------
    001 Hutt            Jabba          896743856 [email protected]      18
    

    最後に要求に応じて。 WRA TRU およびWORWRA ちなみに、はデフォルトなので、使用する必要はありませんが、次のようになります。

    SQL> select * from test;
    
    A
    --------------------------------------
    THIS IS A SIMPLE WRAPPING TEST
    

    しかし、これを10文字の幅としてフォーマットしたかったのです:

    S

    QL> col a format a10 WRA
    SQL> select * from test;
    
    A
    ----------
    THIS IS A
    SIMPLE WRA
    PPING TEST
    

    WRA 単語の途中であるかどうかに関係なく、文字列を10文字で切り刻むことを意味します。単語の終わりだけで中断したい場合(10を超える単語はまだ中断する必要があるため、可能な場合):

    SQL> col a format a10 WOR
    SQL> select * from test;
    
    A
    ----------
    THIS IS A
    SIMPLE
    WRAPPING
    TEST
    

    現在、出力は単語の境界で分割されており、必ずしも10文字で分割されているとは限りません。

    最初の10文字だけが必要で、行の折り返しが必要ない場合は、TRUを使用できます。 :

    SQL> col a format a10 TRU
    SQL> select * from test;
    
    A
    ----------
    THIS IS A
    


    1. SQLデータベースからphp/htmlテーブルにデータを表示します

    2. Access2016で空白のフォームを作成する方法

    3. ニージャーク待機統計:SOS_SCHEDULER_YIELD

    4. CASE式の汚い秘密