mexico - oracle software
¿Cómo ingresar caracteres de nueva línea en Oracle? (2)
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.'';
Error (34,33): PLS-00103: Encontró el símbolo "/" cuando esperaba uno de los siguientes: (- + caso mod nuevo nulo promedio cuenta actual máximo mínimo anterior sql stddev suma varianza ejecutar por todo tiempo de fusión marca de tiempo intervalo de fecha tubería
De acuerdo con la definición de lenguaje Oracle PLSQL, un literal de carácter puede contener "cualquier carácter imprimible en el juego de caracteres". https://docs.oracle.com/cd/A97630_01/appdev.920/a96624/02_funds.htm#2876
La respuesta de @Robert Love muestra una mejor práctica para el código legible, pero también puede escribir el carácter de salto de línea en el código. Aquí hay un ejemplo de un terminal Linux que usa 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.
En lugar de la función CHR (NN) también puedes usar secuencias de escape literales Unicode como u''/0085''
que prefiero porque, bueno, ya sabes que ya no vivimos en 1970. Vea el ejemplo equivalente a continuación:
SQL> begin
2 dbms_output.put_line( ''hello'' || u''/000A'' || ''world'' );
3 end;
4 /
hello
world
PL/SQL procedure successfully completed.
Para una cobertura justa, supongo que vale la pena señalar que diferentes sistemas operativos utilizan diferentes caracteres / secuencias de caracteres para el manejo de fin de línea. Debe tener una idea del contexto en el que se verá o imprimirá la salida de su programa, para determinar si está utilizando la técnica correcta.
- Microsoft Windows: CR / LF o
u''/000D/000A''
- Unix (incluido Apple MacOS): LF o
u''/000A''
- IBM OS390: NEL o
u''/0085''
- HTML:
''<BR>''
- XHTML:
''<br />''
- etcétera etcétera.
Chr(Number) debería funcionar para usted.
select ''Hello'' || chr(10) ||'' world'' from dual
Recuerde que las diferentes plataformas esperan diferentes nuevos caracteres de línea:
- CHR (10) => LF, avance de línea (Unix)
- CHR (13) => CR, retorno de carro (ventanas, junto con LF)