Oracle trimspool 只有尾随空格(不是前导空格)
Posted
技术标签:
【中文标题】Oracle trimspool 只有尾随空格(不是前导空格)【英文标题】:Oracle trimspool only trailing blanks (not leading blanks) 【发布时间】:2011-01-21 16:06:12 【问题描述】:我想知道是否有任何技巧可以让trimspool
只修剪右侧的尾随空格。
我的代码使用 dbms_output.put_line 打印到控制台,并且输出通常带有缩进,以便更容易用眼睛扫描。我将线宽设置得相当大,以使某些输出更易于阅读,因此我还设置了 trimspool 以消除多余的空白。唯一的问题是现在删除了前导空格以及尾随空格。有没有办法解决这个问题?我可以在一些输出语句中添加一个前导(在前导空格之前)“.
”字符,但我不允许修改大多数包中的代码。
这是它在没有 trimmimg 的情况下输出的内容:
1 级(停产) 2 级(停产) 部分数据(EOL)这是它当前在打开trimspool
时输出的内容:
这就是我想要的:
1级(停产) 2级(停产) 部分数据(EOL)【问题讨论】:
+1,在 SQL*Plus 中处理空格输出是我持续困惑的根源。 【参考方案1】:我猜你在追求
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
的空格。
【讨论】:
set serveroutput on size 100000 format wrapped
恢复了左边的空白,但现在右边有很多空白(文件大小现在几乎翻了一番)。 set serveroutput on size 1000000 format truncated
截断了一些输出行(不好)。
是的,神奇的组合似乎是set serveroutput on size 100000 format wrapped
和set trimspool on
。谢谢!以上是关于Oracle trimspool 只有尾随空格(不是前导空格)的主要内容,如果未能解决你的问题,请参考以下文章