sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo embellecer el resultado proveniente de la consulta SELECT en el símbolo del sistema?

configura el ancho de tus columnas para que quepa en la pantalla

por ejemplo:

column EMAIL_ADDR format a30 

donde a es el ancho de columna. puede usar WRA para envolver el columneg

column EMAIL_ADDR format a30 WRA

o TRU para truncar, WOR romper los límites de las palabras

por ejemplo:

SQL> select * from emp;

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

por lo que la salida es un poco difícil de leer ya que email_addr se rellenó a 300 caracteres (ya que mi tabla lo tenía definido como varchar2(300) que sql*plus usa para formatear la salida).

primero establezca un tamaño de línea apropiado:

   SQL> set linesize 100 

ahora configuremos las columnas para que quepan en una línea (el tamaño de línea debe ser mayor que el ancho total de las columnas):

   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]

por lo que ahora las columnas encajan fácilmente en un terminal de tamaño razonable.

en tu caso first_name y last_name son varchar2 (50), pero los datos en ellos son mucho más pequeños, por lo que comenzaría con column first_name format a15 (lo mismo para last_name). con el correo electrónico, su columna es varchar2 (100) pero el tamaño máximo de salida fue de 25 caracteres, así que coloque column email format a25 para empezar.

si lo hizo, debería obtener una salida (si el tamaño de línea es lo suficientemente alto) como:

SQL> select * from xtern_empl_rpt ;

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

finalmente lo solicitado. WRA TRU y WOR . WRA por cierto, está predeterminado, por lo que no tiene que usarlo, pero digamos que teníamos:

SQL> select * from test;

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

pero quería formatear esto con un ancho de 10 caracteres:

S

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

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

el WRA significa simplemente cortar la cadena en 10 caracteres, independientemente de si estamos en medio de una palabra o no. si quisiéramos dividir SOLO en las terminaciones de las palabras (cuando sea posible, ya que una palabra> 10 aún debe dividirse):

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

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

ahora la salida se divide en los límites de las palabras y no necesariamente en 10 caracteres.

si solo quisiéramos los primeros 10 caracteres y no ajustar la línea, podríamos usar TRU :

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

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