根据Oracle PLSQL语言定义,字符文字可以包含"any printable character in the character set" . https://docs.oracle.com/cd/A97630_01/appdev.920/a96624/02_funds.htm#2876
@Robert Love的答案展示了可读代码的最佳实践,但您也可以在代码中输入换行符 . 以下是使用 sqlplus 的Linux终端的示例:
SQL> set serveroutput on
SQL> begin
2 dbms_output.put_line( 'hello' || chr(10) || 'world' );
3 end;
4 /
hello
world
PL/SQL procedure successfully completed.
SQL> begin
2 dbms_output.put_line( 'hello
3 world' );
4 end;
5 /
hello
world
PL/SQL procedure successfully completed.
您也可以使用我喜欢的 u'\0085' 之类的Unicode文字转义序列,而不是CHR(NN)函数,因为您知道我们不再生活在1970年了 . 请参阅下面的等效示例:
SQL> begin
2 dbms_output.put_line( 'hello' || u'\000A' || 'world' );
3 end;
4 /
hello
world
PL/SQL procedure successfully completed.
为了公平覆盖,我想值得注意的是,不同的操作系统使用不同的字符/字符序列进行行尾处理 . 您必须考虑将要查看或打印程序输出的上下文,以确定您是否使用了正确的技术 .
Microsoft Windows:CR / LF或 u'\000D\000A'
Unix(包括Apple MacOS):LF或 u'\000A'
IBM OS390:NEL或 u'\0085'
HTML: '
'
XHTML: '
'
等