我正在尝试右对齐某些PL / SQL代码的输出,但dbms_output.put_line正在修剪字符串中的前导空格。我怎么让它停下来?或者是否有更好的方法来输出带有前导空格的字符串?
dbms_output.put_line(lpad('string', 30, ' '));
输出:
string
而不是:
string
答案 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
这样会保留前导空格,但行长度将由输出中文本的实际长度决定。