tbwshc

          DBMS_OUTPUT包無法輸出空行

          正常情況下,DBMS_OUTPUT包無法直接輸出一個空行。

           

           

          以前還真沒有注意這個問題,前兩天想在輸出結(jié)果的時候進行一下簡單的格式化,發(fā)現(xiàn)了這個問題:

          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_OUTPUTB包輸出的一行都是不可見字符,那么這行內(nèi)容被DBMS_OUTPUT包忽略掉。

          雖然DBMS_OUTPUT包本身并沒有提供開關(guān)來屏蔽這個屬性,不過這個問題依然很容易解決,最簡單的方法莫過于直接把回車包含在字符串中:

          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.

          posted on 2012-08-23 16:40 chen11-1 閱讀(1806) 評論(0)  編輯  收藏

          主站蜘蛛池模板: 疏附县| 清新县| 蒲城县| 海口市| 台山市| 逊克县| 广州市| 大石桥市| 平谷区| 武隆县| 读书| 青田县| 清苑县| 眉山市| 怀安县| 郴州市| 疏附县| 逊克县| 集安市| 泗水县| 宜章县| 诸城市| 遂昌县| 内丘县| 泰来县| 松原市| 扎兰屯市| 深州市| 营山县| 阳春市| 读书| 高青县| 周至县| 泌阳县| 河西区| 遂川县| 韶山市| 临夏市| 故城县| 山西省| 应城市|