Oracle
 sql >> Database >  >> RDS >> Oracle

Formatta i risultati della query in SQL*Plus

Che strumento stai utilizzando?

Se si utilizza la riga di comando SQL*Plus, potrebbe essere necessario utilizzare i comandi di formattazione per specificare l'ampiezza del display, ad es.

Dati brutti

SQL> select empno, ename, job, mgr, hiredate, sal, comm, deptno
  2    from emp;

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     D
EPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- -----
-----
      7369 smith      CLERK           7902 17-DEC-80        800
   20
      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300
   30
      7521 WARD       SALESMAN        7698 22-FEB-81       1250        500
   30
      7566 JONES      MANAGER         7839 02-APR-81       2975
   20
      7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400
   30
      7698 BLAKE      MANAGER         7839 01-MAY-81       2850
   30
      7782 CLARK      MANAGER         7839 09-JUN-81       2450
   10
      7788 SCOTT      ANALYST         7566 19-APR-87       3000
   20
      7839 KING       PRESIDENT            17-NOV-81       5000
   10
      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0
   30
      7876 ADAMS      CLERK           7788 23-MAY-87       1110
   20

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     D
EPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- -----
-----
      7900 SM0        CLERK           7698 03-DEC-81        950
   30
      7902 FORD       ANALYST         7566 03-DEC-81       3000
   20
      7934 MILLER     CLERK           7782 23-JAN-82       1300
   10
      1234 FOO

15 rows selected.

Ma se specifichiamo che EMPNO e MGR dovrebbe avere spazio solo per 5 cifre e ENAME e JOB dovrebbe essere visualizzato in 10 caratteri, tutto si adatta

SQL> column empno format 99999;
SQL> column ename format a10;
SQL> column job format a10;
SQL> column mgr format 99999;
SQL> /

 EMPNO ENAME      JOB           MGR HIREDATE         SAL       COMM     DEPTNO
------ ---------- ---------- ------ --------- ---------- ---------- ----------
  7369 smith      CLERK        7902 17-DEC-80        800                    20
  7499 ALLEN      SALESMAN     7698 20-FEB-81       1600        300         30
  7521 WARD       SALESMAN     7698 22-FEB-81       1250        500         30
  7566 JONES      MANAGER      7839 02-APR-81       2975                    20
  7654 MARTIN     SALESMAN     7698 28-SEP-81       1250       1400         30
  7698 BLAKE      MANAGER      7839 01-MAY-81       2850                    30
  7782 CLARK      MANAGER      7839 09-JUN-81       2450                    10
  7788 SCOTT      ANALYST      7566 19-APR-87       3000                    20
  7839 KING       PRESIDENT         17-NOV-81       5000                    10
  7844 TURNER     SALESMAN     7698 08-SEP-81       1500          0         30
  7876 ADAMS      CLERK        7788 23-MAY-87       1110                    20

 EMPNO ENAME      JOB           MGR HIREDATE         SAL       COMM     DEPTNO
------ ---------- ---------- ------ --------- ---------- ---------- ----------
  7900 SM0        CLERK        7698 03-DEC-81        950                    30
  7902 FORD       ANALYST      7566 03-DEC-81       3000                    20
  7934 MILLER     CLERK        7782 23-JAN-82       1300                    10
  1234 FOO

15 rows selected.

Puoi anche fare cose come

SQL> set pagesize 100;
SQL> set linesize 120;

per controllare la frequenza con cui vengono visualizzate le intestazioni delle colonne (l'impostazione predefinita è ogni 10 righe) e la larghezza di ciascuna riga.

Ovviamente, se sei solo uno sviluppatore che scrive query ad hoc, questo tipo di formattazione è una seccatura. Per questo genere di cose, è molto meglio usare qualcosa come SQL Developer di Oracle, un IDE PL/SQL gratuito fornito da Oracle. La GUI mostra automaticamente i risultati in una tabella che puoi scorrere.