sql >> Database >  >> RDS >> Oracle

Hoe de uitvoer van de SELECT-query in de opdrachtprompt mooier maken?

stel uw kolombreedten in zodat ze op het scherm passen

bijv.:

column EMAIL_ADDR format a30 

waarbij a de kolombreedte is. je kunt WRA gebruiken om de columneg in te pakken

column EMAIL_ADDR format a30 WRA

of TRU om af te kappen, WOR om woordgrenzen te doorbreken

bijvoorbeeld:

SQL> select * from emp;

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

dus de uitvoer is een beetje lastig te lezen omdat email_addr is opgevuld tot 300 tekens (omdat mijn tabel het had gedefinieerd als varchar2(300) die sql*plus gebruikt om de uitvoer te formatteren).

stel eerst een geschikte lijngrootte in:

   SQL> set linesize 100 

laten we nu de kolommen zo instellen dat ze op één regel passen (lijngrootte moet groter zijn dan de totale colbreedten):

   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]

dus nu passen de kolommen gemakkelijk op een terminal van redelijk formaat.

in jouw geval first_name en last_name zijn varchar2(50)'s, maar de gegevens erin zijn veel kleiner, dus ik zou beginnen met column first_name format a15 (zelfde voor achternaam). met e-mail is uw kolom varchar2(100) maar de maximale uitvoer was 25 tekens, dus gebruik column email format a25 voor een voorgerecht.

als je dat deed, zou je output moeten krijgen (als de lijngrootte hoog genoeg is) zoals:

SQL> select * from xtern_empl_rpt ;

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

eindelijk zoals gevraagd. WRA TRU en WOR . WRA is trouwens standaard, dus je hoeft het niet te gebruiken, maar laten we zeggen dat we hadden:

SQL> select * from test;

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

maar ik wilde dit formatteren als een breedte van 10 tekens:

S

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

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

de WRA betekent dat je de string gewoon op 10 tekens hakt, ongeacht of we ons in het midden van een woord bevinden of niet. als we ALLEEN op woorduitgangen willen breken (waar mogelijk als een woord> 10 moet nog worden afgebroken):

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

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

nu wordt de uitvoer onderbroken bij woordgrenzen en niet noodzakelijk bij 10 tekens.

als we alleen de eerste 10 tekens en geen regelterugloop wilden, zouden we TRU kunnen gebruiken :

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

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


  1. XML doorgeven als parameter aan opgeslagen procedure in Oracle

  2. SQLite JSON_EXTRACT()

  3. Getallen opmaken in SQL Server

  4. Hoe rang in MySQL te berekenen