将列标题删除到输出文本文件中

时间:2015-02-24 06:58:58

标签: oracle oracle-sqldeveloper sqlplus spool columnheader

我想从Oracle SQL Developer创建我的查询的平面文件(文本文件)。

我已经使用SPOOL通过脚本文本文件成功创建了文本文件,但我想将每列的标题删除到我的输出中。

我收到了这个输出:

Header000001 Header000002
------------ ------------
Adetail1     Bdetail1
Adetail2     Bdetail2
Adetail3     Bdetail3

但是,我想得到这个输出:

Adetail1Bdetail1
Adetail2Bdetail2
Adetail3Bdetail3

我已经尝试过“set heading off”这个命令,但有消息说:

"SQLPLUS COMMAND Skipped: set heading off".

这些是我发出的输入:

spool on; 
spool C:\SQLFiles\PSB_ATMLKP.txt; 
set newpage 0; 
set echo off; 
set feedback off; 
set heading off; 

select terminal_number, terminal_name from terminal_table; 

spool off;

2 个答案:

答案 0 :(得分:23)

  

SQLPLUS COMMAND跳过:设置标题关闭

该消息很可能是因为您没有通过SQL*Plus执行它,而是使用一些基于GUI的工具。您正在SQL Developer中使用SQLPlus命令。并非所有SQL * Plus命令都可以保证与 SQL Developer 一起使用。

我建议你在 SQLPlus 中执行脚本,你会发现没有问题。

你需要:

SET HEADING OFF

这不包括输出中的列标题。

或者,你也可以这样做:

SET PAGESIZE 0

<强>更新

SQL Developer版本3.2.20.10

中测试
spool ON
spool D:\test.txt
SET heading OFF
SELECT ename FROM emp;
spool off

enter image description here

创建了假脱机文件没有问题:

> set heading OFF
> SELECT ename FROM emp
SMITH      
ALLEN      
WARD       
JONES      
MARTIN     
BLAKE      
CLARK      
SCOTT      
KING       
TURNER     
ADAMS      
JAMES      
FORD       
MILLER     

 14 rows selected 

答案 1 :(得分:0)

添加:

set underline off

到SQL脚本的开头。

在我的SQL脚本中,我有:

SET TERMOUT OFF
set colsep |
set pagesize 0 
set trimspool on
set pagesize  0 embedded on
SET heading on
SET UNDERLINE OFF
spool file_path
-- your SQL here
spool off

请参阅this book以供参考。