列标题始终显示在Oracle输出中

时间:2011-10-01 00:47:51

标签: oracle sqlplus

在10行后,我的列标题重新出现在我的Oracle输出中。有什么关于我的代码或某种环境变量,我可以设置阻止这个?我只需要在我的结果顶部显示一次列标题。

BREAK ON Customer
COLUMN Customer -
       FORMAT A15 -
       HEADING 'Customer Name'
COLUMN "Charter Date" -
       HEADING 'Charter|Date'
COLUMN Pilot -
       FORMAT A20 -
       HEADING 'Pilot'
SELECT DECODE (cu.cus_initial,null, cu.cus_fname||' '||cu.cus_lname,
       cu.cus_fname||' '||cu.cus_initial||'. '||cu.cus_lname)
       AS Customer,
       ch.char_date "Charter Date",
       TRIM( e.emp_fname) ||' '|| TRIM(e.emp_lname) AS "Pilot"
FROM hartmar.customer cu,
     hartmar.charter ch,
     hartmar.crew cr,
     hartmar.pilot p,
     hartmar.employee e
WHERE cu.cus_code = ch.cus_code
      AND ch.char_trip = cr.char_trip
      AND cr.emp_num = p.emp_num
      AND p.emp_num = e.emp_num
      AND cr.crew_type = 'Pilot'
ORDER BY cu.cus_lname, cu.cus_fname, cu.cus_initial, ch.char_date
;

CLEAR BREAKS
CLEAR COLUMNS

3 个答案:

答案 0 :(得分:24)

假设您在SQL * Plus中运行此功能,则需要设置页面大小。

SET PAGESIZE 50000

将导致列标题仅在返回的每50,000行中出现一次。我相信50,000是PAGESIZE的最大设置。

如果您想完全删除标题,可以将PAGESIZE设置为0,但这样可以抑制第一组标题

SQL> set pagesize 0;
SQL> select ename, empno from emp;
PAV              7623
smith            7369
ALLEN            7499
WARD             7521
JONES            7566
MARTIN           7654
BLAKE            7698
CLARK            7782
SCOTT            7788
KING             7839
TURNER           7844
ADAMS            7876
SM0              7900
FORD             7902
MILLER           7934
BAR              1234

16 rows selected.

答案 1 :(得分:10)

使用'隐藏'功能,除了第一行标题外,所有功能都会被禁止!

set pagesize 0 embedded on

感谢“Bruno Ruess”通过https://community.oracle.com/thread/2389479?start=0&tstart=0获取上述内容。

如果您还要添加

SET UNDERLINE off

然后你可以压制标题行的“下划线”,并获得看起来更像CSV的内容。

答案 2 :(得分:1)

你也可以:

SET PAGESIZE 0

在报告开始后停止所有列标题。