0

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

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个)。每行都需要固定长度,因为文件将被发送到外部服务器,并且基于它是固定长度的假设进行解析。

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

4

1 回答 1

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
于 2013-03-28T15:00:38.733 回答