Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да украсите изхода, идващ от заявката SELECT в командния ред?

задайте ширините на колоните си, за да се поберат в екрана

напр.:

column EMAIL_ADDR format a30 

където a е ширината на колоната на hte. можете да използвате WRA, за да обвиете колоната

column EMAIL_ADDR format a30 WRA

или TRU за съкращаване, WOR за нарушаване на границите на думи

например:

SQL> select * from emp;

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

така че изходът е малко труден за четене, тъй като email_addr беше подплатен до 300 знака (тъй като моята таблица го беше дефиниран като varchar2(300), който sql*plus използва за форматиране на изхода).

първо задайте подходящ размер на реда:

   SQL> set linesize 100 

сега нека зададем колоните така, че да се поберат на един ред (размерът на реда трябва да е по-голям от общите ширини на колоните):

   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]

така че сега колоните се вписват лесно върху терминал с разумен размер.

във вашия случай first_name и last_name са varchar2(50), но данните в тях са много по-малки, така че бих започнал с column first_name format a15 (същото за фамилия). с имейл, вашата колона е varchar2(100), но максималният изходен размер е 25 символа, така че поставете column email format a25 за начало.

ако сте го направили, трябва да получите изход (ако размерът на реда е достатъчно голям) като:

SQL> select * from xtern_empl_rpt ;

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

накрая както е поискано. WRA TRU и WOR . WRA между другото е по подразбиране, така че не е нужно да го използвате, но да кажем, че имахме:

SQL> select * from test;

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

но исках да форматирам това като ширина от 10 знака:

S

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

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

WRA означава просто да нарежете низа на 10 символа, независимо дали сме в средата на думата или не. ако искахме да прекъсваме САМО на окончанията на думи (където е възможно, тъй като дума> 10 все още трябва да се прекъсва):

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

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

сега изходът е нарушен на границите на думите, а не непременно на 10 символа.

ако искахме само първите 10 знака и без обвиване на редове, бихме могли да използваме 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. Пейджиране с Oracle

  2. Устройство за възстановяване при нулева загуба на данни

  3. Вмъкване на няколко записа в oracle

  4. Функция ASCIISTR() в Oracle

  5. Oracle SQL заявка:Извличане на най-новите стойности за група въз основа на времето