代码之家  ›  专栏  ›  技术社区  ›  DiscoInfiltrator

SQLPlus尾部空白问题

  •  0
  • DiscoInfiltrator  · 技术社区  · 13 年前

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

    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 回复  |  直到 13 年前
        1
  •  2
  •   Ed Gibbs    13 年前

    这将起作用:

    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