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

Come abbellire l'output proveniente dalla query SELECT nel prompt dei comandi?

imposta le larghezze delle colonne per adattarle allo schermo

es:

column EMAIL_ADDR format a30 

dove a è la larghezza della colonna. puoi usare WRA per avvolgere il columneg

column EMAIL_ADDR format a30 WRA

o TRU per troncare, WOR rompere i confini delle parole

ad esempio:

SQL> select * from emp;

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

quindi l'output è un po 'complicato da leggere poiché email_addr è stato riempito a 300 caratteri (poiché la mia tabella era definita come varchar2(300) che sql*plus usa per formattare l'output).

prima imposta una dimensione della linea appropriata:

   SQL> set linesize 100 

ora impostiamo le colonne in modo che si adattino a una riga (la dimensione della linea dovrebbe essere maggiore della larghezza totale delle colonne):

   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]

quindi ora le colonne si adattano facilmente a un terminale di dimensioni ragionevoli.

nel tuo caso first_name e last_name sono varchar2(50) ma i dati in essi contenuti sono molto più piccoli, quindi inizierei con column first_name format a15 (lo stesso per cognome). con l'e-mail, la tua colonna è varchar2(100) ma la dimensione massima dell'output era di 25 caratteri, quindi inserisci column email format a25 per cominciare.

se lo hai fatto, dovresti ottenere un output (se la dimensione della linea è abbastanza alta) come:

SQL> select * from xtern_empl_rpt ;

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

infine come richiesto. WRA TRU e WOR . WRA è predefinito tra l'altro, quindi non devi usarlo ma diciamo che abbiamo avuto:

SQL> select * from test;

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

ma volevo formattarlo come larghezza di 10 caratteri:

S

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

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

il WRA significa semplicemente tagliare la stringa a 10 caratteri, indipendentemente dal fatto che siamo nel mezzo di una parola o meno. se volessimo interrompere SOLO sulle terminazioni delle parole (ove possibile poiché una parola> 10 deve ancora essere interrotta):

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

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

ora l'output è rotto ai limiti delle parole e non necessariamente a 10 caratteri.

se volessimo solo i primi 10 caratteri e nessun ritorno a capo della riga, potremmo usare TRU :

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

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