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

Formater les résultats de la requête dans SQL*Plus

Quel outil utilisez-vous ?

Si vous utilisez la ligne de commande SQL*Plus, vous devrez peut-être utiliser des commandes de formatage pour spécifier la largeur d'affichage, c'est-à-dire

Données moches

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.

Mais si nous spécifions que EMPNO et MGR ne devrait avoir de place que pour 5 chiffres et ENAME et JOB doit être affiché en 10 caractères, tout convient

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.

Vous pouvez également faire des choses comme

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

pour contrôler la fréquence d'affichage des en-têtes de colonne (la valeur par défaut est toutes les 10 lignes) et la largeur de chaque ligne.

Bien sûr, si vous n'êtes qu'un développeur écrivant des requêtes ad hoc, ce type de formatage est pénible. Pour ce genre de choses, vous feriez bien mieux d'utiliser quelque chose comme SQL Developer d'Oracle, un IDE PL/SQL gratuit fourni par Oracle. L'interface graphique affiche automatiquement vos résultats dans un tableau que vous pouvez faire défiler.