ITPub博客

首页 > Linux操作系统 > Linux操作系统 > DBMS_OUTPUT包无法输出空行

DBMS_OUTPUT包无法输出空行

原创 Linux操作系统 作者:yangtingkun 时间:2012-07-03 23:41:34 0 删除 编辑

正常情况下,DBMS_OUTPUT包无法直接输出一个空行。

 

 

以前还真没有注意这个问题,前两天想在输出结果的时候进行一下简单的格式化,发现了这个问题:

SQL> set serverout on
SQL> begin
2 dbms_output.put_line('a');
3 dbms_output.put_line(' ');
4 dbms_output.put_line('b');
5 dbms_output.new_line;
6 dbms_output.put_line('c');
7 end;
8 /
a
b
c

PL/SQL procedure successfully completed.

导致问题的原因在于,如果使用DBMS_OUTPUT包输出的一行都是不可见字符,那么这行内容被DBMS_OUTPUT包忽略掉。

虽然DBMS_OUTPUT包本身并没有提供开关来屏蔽这个属性,不过这个问题依然很容易解决,最简单的方法莫过于直接把回车包含在字符串中:

SQL> begin
2 dbms_output.put_line('a
3
4 b');
5 dbms_output.put_line('
6 c');
7 end;
8 /
a

b

c

PL/SQL procedure successfully completed.

当然这种方法有可能导致PL/SQL代码的可读性变差,也容易影响代码的缩进格式,此外还有一种方式:

SQL> begin
2 dbms_output.put_line('a' || chr(10) || chr(13));
3 dbms_output.put_line('b');
4 dbms_output.put_line(chr(10) || chr(13) || 'c');
5 end;
6 /
a

b

c

PL/SQL procedure successfully completed.

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-734903/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10350731