Как ввести символ новой строки в Oracle?
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 сумма дисперсии выполнить forall слияние временная метка интервал дата труба
2 ответов
Chr (Номер) должно работать для вас.
select 'Hello' || chr(10) ||' world' from dual
помните, что разные платформы ожидают разные символы новой строки:
- CHR (10) = > LF, line feed (unix)
- CHR (13) = > CR, возврат каретки (окна, вместе с LF)
согласно определению языка Oracle PLSQL, символьный литерал может содержать "любой печатаемый символ в наборе символов". https://docs.oracle.com/cd/A97630_01/appdev.920/a96624/02_funds.htm#2876
@Robert Love's answer демонстрирует наилучшую практику для читаемого кода, но вы также можете просто ввести символ строки в код. Вот пример из терминала Linux с помощью sqlplus
:
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.
вместо CHR( NN ) функция вы также можете использовать Unicode литеральные escape-последовательности, такие как u'85'
который я предпочитаю, потому что, ну вы знаете, мы не живем в 1970 году. См. эквивалентный пример ниже:
SQL> begin
2 dbms_output.put_line( 'hello' || u'0A' || 'world' );
3 end;
4 /
hello
world
PL/SQL procedure successfully completed.
для справедливого покрытия, я думаю, стоит отметить, что разные операционные системы используют разные символы/последовательности символов для обработки конца строки. Вы должны подумать о контексте, в котором будет просматриваться или печататься вывод вашей программы, чтобы определить, используете правильную технику.
- Microsoft Windows: CR / LF или
u'0D0A'
- Unix (включая Apple MacOS): LF или
u'0A'
- IBM OS390: NEL или
u'85'
- HTML:
'<BR>'
- XHTML-кода:
'<br />'
- etc. так далее.