sql >> Database teknologi >  >> RDS >> Oracle

Hvordan forskønner man det output, der kommer fra SELECT-forespørgslen i kommandoprompten?

indstil dine kolonnebredder, så de passer til skærmen

f.eks.:

column EMAIL_ADDR format a30 

hvor a er kolonnebredden. du kan bruge WRA til at ombryde kolonnen.

column EMAIL_ADDR format a30 WRA

eller TRU for at afkorte, WOR at bryde på ordgrænser

for eksempel:

SQL> select * from emp;

        ID FIRST_NAME
---------- ------------------------------
LAST_NAME
------------------------------
EMAIL_ADDR
--------------------------------------------------
         1 Dazza
Smith
[email protected]

så outputtet er lidt vanskeligt at læse, da email_addr var polstret til 300 tegn (som min tabel havde det defineret som varchar2(300), som sql*plus bruger til at formatere outputtet).

Indstil først en passende linjestørrelse:

   SQL> set linesize 100 

Lad os nu indstille kolonnerne, så de passer på én linje (linjestørrelsen skal være større end de samlede kolonnebredder):

   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]

så nu passer søjlerne nemt på en terminal af rimelig størrelse.

i dit tilfælde first_name og last_name er varchar2(50), men dataene i dem er meget mindre, så jeg ville starte med column first_name format a15 (samme for efternavn). med e-mail er din kolonne varchar2(100), men det maksimale output var 25 tegn, så indsæt column email format a25 til at starte med.

hvis du gjorde det, skulle du få output (hvis linjestørrelsen er høj nok) som:

SQL> select * from xtern_empl_rpt ;

EMP LAST_NAME       FIRST_NAME     SSN       EMAIL_ADDR                YEARS_OF_SERVICE
--- --------------- -------------- --------- ------------------------- ----------------
001 Hutt            Jabba          896743856 [email protected]      18

endelig som ønsket. WRA TRU og WOR . WRA er standard i øvrigt, så du behøver ikke bruge det, men lad os sige, at vi havde:

SQL> select * from test;

A
--------------------------------------
THIS IS A SIMPLE WRAPPING TEST

men jeg ønskede at formatere dette som 10 tegns bredde:

S

QL> col a format a10 WRA
SQL> select * from test;

A
----------
THIS IS A
SIMPLE WRA
PPING TEST

WRA betyder bare at hakke strengen med 10 tegn, uanset om vi er midt i et ord eller ej. hvis vi KUN ønskede at bryde på ordendelser (hvor det er muligt, da et ord> 10 stadig skal bryde):

SQL> col a format a10 WOR
SQL> select * from test;

A
----------
THIS IS A
SIMPLE
WRAPPING
TEST

nu er output brudt ved ordgrænser og ikke nødvendigvis ved 10 tegn.

hvis vi kun ville have de første 10 tegn og ingen linjeombrydning, kunne vi bruge TRU :

SQL> col a format a10 TRU
SQL> select * from test;

A
----------
THIS IS A


  1. Hvilken er den bedste PostgreSQL GUI? Sammenligning i 2021

  2. Hvordan installeres postgres med NSIS med alle parametre?

  3. Bruger du NOLOCK Hint i EF4?

  4. Sådan begrænser du resultater i MySQL, PostgreSQL og SQLite