Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak upiększyć dane wyjściowe pochodzące z zapytania SELECT w wierszu polecenia?

ustaw szerokość kolumn tak, aby zmieściły się na ekranie

np.:

column EMAIL_ADDR format a30 

gdzie a jest szerokością kolumny. możesz użyć WRA, aby zawinąć kolumnę

column EMAIL_ADDR format a30 WRA

lub TRU skrócić, WOR przełamać granice słów

na przykład:

SQL> select * from emp;

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

więc dane wyjściowe są nieco trudne do odczytania, ponieważ adres_e-mail został uzupełniony do 300 znaków (ponieważ moja tabela miała to zdefiniowane jako varchar2(300), którego sql * plus używa do sformatowania danych wyjściowych).

najpierw ustaw odpowiedni rozmiar linii:

   SQL> set linesize 100 

teraz ustawmy kolumny tak, aby mieściły się w jednej linii (rozmiar linii powinien być większy niż całkowita szerokość kolumn):

   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]

więc teraz kolumny łatwo pasują do terminala o rozsądnej wielkości.

w twoim przypadku first_name i last_name są varchar2(50), ale dane w nich są znacznie mniejsze, więc zacząłbym od column first_name format a15 (tak samo dla nazwiska). z e-mailem, twoja kolumna to varchar2(100), ale maksymalny rozmiar danych wyjściowych to 25 znaków, więc umieść column email format a25 na początek.

jeśli to zrobiłeś, powinieneś otrzymać wynik (jeśli rozmiar linii jest wystarczająco wysoki) taki jak:

SQL> select * from xtern_empl_rpt ;

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

w końcu zgodnie z żądaniem. WRA TRU i WOR . WRA jest domyślna, więc nie musisz jej używać, ale powiedzmy, że mieliśmy:

SQL> select * from test;

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

ale chciałem sformatować to jako szerokość 10 znaków:

S

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

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

WRA oznacza po prostu odetnij ciąg na 10 znaków, niezależnie od tego, czy jesteśmy w środku słowa, czy nie. gdybyśmy chcieli łamać TYLKO na końcach słów (jeśli to możliwe, ponieważ słowo> 10 nadal musi się złamać):

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

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

teraz dane wyjściowe są łamane na granicach słów, a niekoniecznie na 10 znakach.

gdybyśmy chcieli tylko pierwszych 10 znaków i bez zawijania linii, moglibyśmy użyć TRU :

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

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak zmienić datę na godzinę w Oracle 10g

  2. Jak daty są przechowywane w Oracle?

  3. Zależności klienta Oracle.DataAccess

  4. Łączenie się z bazą danych Oracle przez C#?

  5. Różnica między literałami N'String' i U'String' w Oracle