Oracle 修剪池仅尾随空白(不包括前导空白)

发布于 2024-10-12 22:39:11 字数 624 浏览 10 评论 0原文

我想知道是否有任何技巧可以让 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)

I am wondering if there's any tricks to get trimspool to only trim trailing whitespace on the right.

I have code that uses dbms_output.put_line to print to the console, and the output often has indentation to make it easier to scan with the eyes. I set the line width rather large to make some of the output easier to read, so I also set trimspool to get rid of extra white space. The only problem is that now the leading which space is removed as well as the trailing whitespace. Is there a way to fix this? I could add a leading (before the leading whitespace) "." character to some of the output statements, but I'm not allowed to modify the code in most of the packages.


Here's what it outputs with no trimmimg:

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

Here's what it currently outputs with trimspool on:

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

HEre's what I want:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

带上头具痛哭 2024-10-19 22:39:11

你就会追求

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

您必须设置 Trimspool on 以消除直至 eol 的空格。

I guess you're after

set serveroutput on size 100000 format wrapped

if I do understand your question.

If I do this:

set serveroutput on size 1000000

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

SQL*Plus outputs:

no indent
indent

If, however, I do

set serveroutput on size 1000000 format truncated

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

SQL*Plus outputs:

no indent
   indent

You have to set trimspool on in order to eliminate the spaces up to eol.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文