oracle 删除输出文本文件中的列标题

qlfbtfca  于 2023-04-29  发布在  Oracle
关注(0)|答案(3)|浏览(136)

我想从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;
5ssjco0h

5ssjco0h1#

已跳过SQLPLUS命令:开航
该消息很可能是因为您不是通过SQL*Plus执行它,而是通过一些基于GUI的工具。您正在SQL Developer中使用SQLPlus命令。并非所有SQL*Plus命令都能与SQL Developer配合使用。
我建议您在SQLPlus中执行该脚本,您将不会看到任何问题。
您需要:

SET HEADING OFF

这将不包括输出中的列标题。
或者,您也可以这样做:

SET PAGESIZE 0

**使用SQL Developer版本 www.example.com 我们

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

Spool文件已创建,没有任何问题:

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

 14 rows selected
nimxete2

nimxete22#

添加:

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

eni9jsuy

eni9jsuy3#

完整的例子。诀窍是sqlplus -s

sqlplus -s / as sysdba <<EOF
> SET TERMOUT OFF
> SET LINESIZE 1000
>  set echo off;
> set feedback off;
> set heading off;
> spool /tmp/killSession${esquema}.sql
> select 'alter system kill session'||' ''' || s.sid||','||s.serial# ||''' IMMEDIATE;'
> from v\$session s, v\$process p
> where s.username = '${esquema}'
> and p.addr (+) = s.paddr;
> EOF

alter system kill session '598,60705' IMMEDIATE;
alter system kill session '13,6279' IMMEDIATE;
alter system kill session '595,49129' IMMEDIATE;
alter system kill session '591,46591' IMMEDIATE;
alter system kill session '16,47283' IMMEDIATE;
alter system kill session '403,34455' IMMEDIATE;
alter system kill session '604,37015' IMMEDIATE;

[oracle@nominabdf ~]$ more /tmp/killSession${esquema}.sql

alter system kill session '598,60705' IMMEDIATE;


alter system kill session '13,6279' IMMEDIATE;


alter system kill session '595,49129' IMMEDIATE;


alter system kill session '591,46591' IMMEDIATE;


alter system kill session '16,47283' IMMEDIATE;


alter system kill session '403,34455' IMMEDIATE;


alter system kill session '604,37015' IMMEDIATE;

相关问题