Comment entrer le caractère de nouvelle ligne dans 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.'; 

Erreur (34,33): PLS-00103: rencontre le symbole “/” lorsque vous attendez l’un des éléments suivants: (- + case mod new null compte courant courant max min précédent sql

Chr (Number) devrait fonctionner pour vous.

 select 'Hello' || chr(10) ||' world' from dual 

Rappelez-vous que différentes plates-formes attendent différents caractères de ligne:

  • CHR (10) => LF, saut de ligne (unix)
  • CHR (13) => CR, retour chariot (windows, avec LF)

Selon la définition du langage Oracle PLSQL, un littéral de caractère peut contenir “tout caractère imprimable dans le jeu de caractères”. https://docs.oracle.com/cd/A97630_01/appdev.920/a96624/02_funds.htm#2876

La réponse de @Robert Love présente une meilleure pratique pour le code lisible, mais vous pouvez aussi simplement saisir le caractère de saut de ligne dans le code. Voici un exemple d’un terminal Linux utilisant 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. 

Au lieu de la fonction CHR (NN), vous pouvez également utiliser des séquences d’échappement littérales Unicode comme u'\0085' que je préfère, car vous savez que nous ne vivons plus en 1970. Voir l’exemple ci-dessous:

 SQL> begin 2 dbms_output.put_line( 'hello' || u'\000A' || 'world' ); 3 end; 4 / hello world PL/SQL procedure successfully completed. 

Pour une couverture équitable, je pense qu’il convient de noter que différents systèmes d’exploitation utilisent des caractères / séquences de caractères différents pour la gestion de la fin de ligne. Vous devez réfléchir au contexte dans lequel votre sortie de programme va être visualisée ou imprimée, afin de déterminer si vous utilisez la bonne technique.

  • Microsoft Windows: CR / LF ou u'\000D\000A'
  • Unix (y compris Apple MacOS): LF ou u'\000A'
  • IBM OS390: NEL ou u'\0085'
  • HTML: '
    '
  • XHTML: '
    '
  • etc.