如何防止 dbms_output.put_line 修剪前导空格?

发布于 2024-08-27 10:49:11 字数 289 浏览 7 评论 0 原文

我正在尝试右对齐某些 PL/SQL 代码的输出,但 dbms_output.put_line 正在修剪字符串中的前导空格。我该如何让它停止?或者有没有更好的方法来输出带有前导空格的字符串?

dbms_output.put_line(lpad('string', 30, ' '));

输出:

string

而不是:

                        string

I am trying to right-align the output of some PL/SQL code, but dbms_output.put_line is trimming the leading whitespace from my strings. How do I make it stop? Or is there a better way to output strings with leading whitespace?

dbms_output.put_line(lpad('string', 30, ' '));

outputs:

string

instead of:

                        string

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

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

发布评论

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

评论(2

饮湿 2024-09-03 10:49:11

问题不在于 dbms_output,而在于 SQL*Plus。

使用

SET SERVEROUTPUT ON FORMAT WRAPPED

SET SERVEROUTPUT ON FORMAT TRUNCATED

来保留空格。


来自 文档 (PDF) >SET SERVEROUT WORD_WRAPPED(这是标准):

SQL*Plus 左对齐每行,跳过所有前导空格。

The problem is not with dbms_output but with SQL*Plus.

Use

SET SERVEROUTPUT ON FORMAT WRAPPED

or

SET SERVEROUTPUT ON FORMAT TRUNCATED

to preserve the spaces.


From the documentation (PDF) of SET SERVEROUT WORD_WRAPPED (which is the standard):

SQL*Plus left justifies each line, skipping all leading whitespace.

送君千里 2024-09-03 10:49:11

可能会补充一点,如果您想保留前导空格但修剪尾随空格,请使用:

set trimspool on

这样,前导空格将被保留,但行长度将由输出中文本的实际长度确定。

Might add that if you want to preserve the leading spaces but trim the trailing spaces use:

set trimspool on

This way the leading spaces will be preserved but the line length will be determined by the actual length of text in the output.

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