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

时间:2010-04-06 11:41:29

标签: sql oracle plsql sqlplus

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

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

输出:

string

而不是:

                        string

2 个答案:

答案 0 :(得分:15)

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

使用

SET SERVEROUTPUT ON FORMAT WRAPPED

SET SERVEROUTPUT ON FORMAT TRUNCATED

保留空格。


来自SET SERVEROUT WORD_WRAPPED {{1}}(这是标准):

  

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

答案 1 :(得分:3)

如果你想保留前导空格但修剪尾随空格,可以添加:

set trimspool on

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