SQLPlus跟踪空白问题

时间:2013-03-28 13:46:45

标签: sql oracle sqlplus

我的脚本将某些查询的输出假脱机到文本文件。

set linesize 200
set trimspool on
....

spool "C:\someFile.txt"
SELECT rpad(field1, 50)||rpad(field2, 50) FROM table1;
SELECT rpad(field3, 200) FROM table2;
spool off

我想要的是查询1中的每一行输出都是100个字符,包括尾随空格,并且对于查询2中的每一行输出都是200个字符,包括尾随空格。

如果trimspool关闭,那么每行都有200个字符,这不是我想要的。如果它打开,那么在field3只有10个字符长的情况下,输出文件中该行的长度只有60个字符(需要为100)。每行需要固定长度,因为文件将被发送到外部服务器,并根据它是固定长度的假设进行解析。

有没有办法避免修剪我明确输出的空白?

1 个答案:

答案 0 :(得分:2)

这将有效:

set trimspool off
spool "C:\someFile.txt"
set linesize 100
SELECT rpad(field1, 50)||rpad(field2, 50) FROM table1;
set linesize 200
SELECT rpad(field3, 200) FROM table2;
spool off

输出包含命令本身,因此如果要删除这些命令并仅包含查询结果,请将所有命令放在脚本文件中,然后执行脚本文件。还要将这些添加到脚本的顶部:

set echo off
set termout off
set pagesize 0
set feedback off