SQL * Plus列分隔符

时间:2014-03-16 06:14:42

标签: sql sqlplus

我在SQL * Plus的scott用户中,是否可以在此select中按列表而不是默认空格分隔列?

SELECT empno, ename, job FROM emp

不幸的是,这不起作用:

SELECT empno '\t', ename '\t', job '\t' FROM emp

而不是:

 EMPNO ENAME      JOB

  7369 SMITH      CLERK
  7499 ALLEN      SALESMAN
  7521 WARD       SALESMAN
  7566 JONES      MANAGER
  7654 MARTIN     SALESMAN
  7698 BLAKE      MANAGER
  7782 CLARK      MANAGER
  7839 KING       PRESIDENT
  7844 TURNER     SALESMAN
  7900 JAMES      CLERK
  7902 FORD       ANALYST
  7934 MILLER     CLERK

我想在列之间留出更多空间:

      EMPNO     ENAME           JOB
 ----------     ----------      ---------

       7369     SMITH           CLERK
       7499     ALLEN           SALESMAN
       7521     WARD            SALESMAN
       7566     JONES           MANAGER
       7654     MARTIN          SALESMAN
       7698     BLAKE           MANAGER
       7782     CLARK           MANAGER
       7839     KING            PRESIDENT
       7844     TURNER          SALESMAN
       7900     JAMES           CLERK
       7902     FORD            ANALYST
       7934     MILLER          CLERK

3 个答案:

答案 0 :(得分:1)

使用 COLUMN 命令(see SQL*Plus® User's Guide and Reference)并根据您的意愿设置报告格式

答案 1 :(得分:0)

正如sqlab已经指出的那样,你需要SQL * PLUS中的COLUMN格式化选项。

由于文档的可读性不高,所以您需要:

COLUMN EMPNO FORMAT A10
COLUMN ENAME FORMAT A16
COLUMN JOB FORMAT A9

如果您需要在常规SQL中执行此操作,可以使用:

SELECT rpad(empno, ' ', 11) empno
,      rpad(ename, ' ', 17) ename
,      job
FROM   emp

答案 2 :(得分:0)

一个更简单的解决方案是:

设置colsep''