Oracle trimspool仅尾随空白(不是空白空格)

时间:2011-01-21 16:06:13

标签: oracle sqlplus

我想知道是否有任何技巧让trimspool只修剪右边的尾随空格。

我的代码使用dbms_output.put_line打印到控制台,输出通常有缩进,以便更容易用眼睛扫描。我将线宽设置得相当大,以使一些输出更容易阅读,所以我还设置了trimspool以消除额外的空白区域。唯一的问题是现在领先的空间被删除以及尾随的空格。有没有办法来解决这个问题?我可以在某些输出语句中添加一个前导(在前导空格之前)“.”字符,但我不允许在大多数包中修改代码。


这是没有trimmimg输出的内容:

 level 1                          (EOL)
     level 2                      (EOL)
       Some data                  (EOL)

以下是trimspool目前输出的内容:

level 1(EOL)
level 2(EOL)
Some data(EOL)

这就是我想要的:

 level 1(EOL)
     level 2(EOL)
       Some data(EOL)

1 个答案:

答案 0 :(得分:8)

我想你是在追求

set serveroutput on size 100000 format wrapped

如果我理解你的问题。

如果我这样做:

set serveroutput on size 1000000

begin
  dbms_output.put_line('no indent');
  dbms_output.put_line('   indent');
end;
/

SQL * Plus输出:

no indent
indent

但是,如果我这样做

set serveroutput on size 1000000 format truncated

begin
  dbms_output.put_line('no indent');
  dbms_output.put_line('   indent');
end;
/

SQL * Plus输出:

no indent
   indent

您必须set trimspool on才能消除eol之前的空格。