【问题标题】:How to prevent dbms_output.put_line from trimming leading whitespace?如何防止 dbms_output.put_line 修剪前导空格?
【发布时间】:2011-02-04 18:48:37
【问题描述】:

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

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

输出:

string

代替:

                        string

【问题讨论】:

    标签: sql oracle plsql sqlplus


    【解决方案1】:

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

    使用

    SET SERVEROUTPUT ON FORMAT WRAPPED
    

    SET SERVEROUTPUT ON FORMAT TRUNCATED
    

    保留空格。


    来自SET SERVEROUT WORD_WRAPPEDdocumentation (PDF)(这是标准):

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

    【讨论】:

      【解决方案2】:

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

      set trimspool on
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-03-07
        • 1970-01-01
        • 2015-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多