select col1, col2
into name1, name2
from table1
where col1=col;
m_sub := 'Subject ';
m_msg := 'Hello '||name||' ,'||/n||/n||'Your order has been placed.';
错误(34,33):PLS-00103:遇到符号时遇到符号“/” 以下内容:( - + case mod new null avg count 当前最大最小值之前sql stddev sum variance执行forall merge 时间戳间隔日期管道
答案 0 :(得分:110)
Chr(Number)应该适合你。
select 'Hello' || chr(10) ||' world' from dual
请记住,不同的平台需要不同的换行符:
答案 1 :(得分:1)
根据Oracle PLSQL语言定义,字符文字可以包含“字符集中的任何可打印字符”。 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.
为了公平起见,我想值得注意的是,不同的操作系统使用不同的字符/字符序列进行行尾处理。您必须考虑要在其中查看或打印程序输出的上下文,以确定您是否使用了正确的技术。
u'\000D\000A'
u'\000A'
u'\0085'
'<BR>'
'<br />'
答案 2 :(得分:0)
begin
dbms_output.put_line( 'hello' ||chr(13) || chr(10) || 'world' );
end;