Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment embellir la sortie provenant de la requête SELECT dans l'invite de commande ?

définissez la largeur de vos colonnes pour qu'elle tienne dans l'écran

ex :

column EMAIL_ADDR format a30 

où a est la largeur de la colonne. vous pouvez utiliser WRA pour envelopper la colonneeg

column EMAIL_ADDR format a30 WRA

ou TRU tronquer, WOR dépasser les frontières des mots

par exemple :

SQL> select * from emp;

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

donc la sortie est un peu difficile à lire car email_addr a été rempli à 300 caractères (comme ma table l'avait défini comme varchar2(300) que sql*plus utilise pour formater la sortie).

définissez d'abord une taille de ligne appropriée :

   SQL> set linesize 100 

définissons maintenant les colonnes de manière à ce qu'elles tiennent sur une seule ligne (la taille de ligne doit être supérieure à la largeur totale des colonnes) :

   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]

alors maintenant, les colonnes s'intègrent facilement dans un terminal de taille raisonnable.

dans votre cas first_name et last_name sont des varchar2(50) mais les données qu'ils contiennent sont beaucoup plus petites, donc je commencerais par column first_name format a15 (idem pour nom_de_famille). avec e-mail, votre colonne est varchar2 (100) mais la sortie de taille maximale était de 25 caractères, alors mettez column email format a25 pour un débutant.

si vous l'avez fait, vous devriez obtenir une sortie (si la taille de ligne est suffisamment élevée) comme :

SQL> select * from xtern_empl_rpt ;

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

enfin comme demandé. WRA TRU et WOR . WRA est par défaut, vous n'avez donc pas à l'utiliser, mais disons que nous avions :

SQL> select * from test;

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

mais je voulais le formater en largeur de 10 caractères :

S

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

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

le WRA signifie simplement hacher la chaîne à 10 caractères, que nous soyons au milieu d'un mot ou non. si nous voulions casser UNIQUEMENT sur les fins de mots (dans la mesure du possible car un mot> 10 doit encore casser) :

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

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

maintenant, la sortie est interrompue aux limites des mots et pas nécessairement à 10 caractères.

si nous ne voulions que les 10 premiers caractères et aucun retour à la ligne, nous pourrions utiliser TRU :

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

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