Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie kann die Ausgabe der SELECT-Abfrage in der Eingabeaufforderung verschönert werden?

Stellen Sie Ihre Spaltenbreite so ein, dass sie in den Bildschirm passt

zB:

column EMAIL_ADDR format a30 

wobei a die Spaltenbreite ist. Sie können WRA verwenden, um den Spaltenabschnitt umzubrechen

column EMAIL_ADDR format a30 WRA

oder TRU zum Abschneiden WOR Wortgrenzen zu durchbrechen

zum Beispiel:

SQL> select * from emp;

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

Daher ist die Ausgabe etwas schwierig zu lesen, da email_addr auf 300 Zeichen aufgefüllt wurde (da meine Tabelle sie als varchar2(300) definiert hatte, was sql*plus zum Formatieren der Ausgabe verwendet).

Stellen Sie zuerst eine geeignete Zeilengröße ein:

   SQL> set linesize 100 

Lassen Sie uns nun die Spalten so einstellen, dass sie in eine Zeile passen (die Zeilengröße sollte größer sein als die Gesamtspaltenbreite):

   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]

jetzt passen die Säulen problemlos auf ein Terminal mit vernünftiger Größe.

in Ihrem Fall first_name und last_name sind varchar2(50), aber die Daten in ihnen sind viel kleiner, also würde ich mit column first_name format a15 beginnen (dasselbe gilt für Nachname). Bei E-Mail ist Ihre Spalte varchar2 (100), aber die maximale Ausgabegröße war 25 Zeichen, also geben Sie column email format a25 ein für den Anfang.

Wenn Sie das getan haben, sollten Sie folgende Ausgabe erhalten (wenn die Zeilengröße hoch genug ist):

SQL> select * from xtern_empl_rpt ;

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

endlich wie gewünscht. WRA TRU und WOR . WRA ist übrigens Standard, also müssen Sie es nicht verwenden, aber nehmen wir an, wir hatten:

SQL> select * from test;

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

aber ich wollte dies als 10 Zeichen Breite formatieren:

S

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

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

der WRA bedeutet, die Zeichenfolge einfach bei 10 Zeichen abzuschneiden, unabhängig davon, ob wir uns mitten in einem Wort befinden oder nicht. wenn wir NUR bei Wortenden umbrechen wollten (wo möglich, da ein Wort> 10 noch umbrechen muss):

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

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

jetzt wird die Ausgabe an Wortgrenzen unterbrochen und nicht unbedingt bei 10 Zeichen.

wenn wir nur die ersten 10 Zeichen und keinen Zeilenumbruch wollten, könnten wir TRU verwenden :

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

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