software mexico descargar definicion corporation oracle

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)