如何删除或跳过字符串中的多个新行?

问题描述

DECLARE
   v_string VARCHAR2(4000) := 'A database is an organized collection of data,generally stored and accessed electronically 
   from a computer system. Where databases are more
  
  
   
  complex they are often developed 
  using formal design and modeling techniques.';
   v_sql_code_new VARCHAR2(4000);
BEGIN
END;
 /  

  Desired output: 
     A database is an organized collection of data,generally stored and accessed electronically 
     from a computer system. Where databases are more
     complex they are often developed 
     using formal design and modeling techniques.

我正在尝试从字符串中删除所有换行符。我尝试使用regexp_replace,但无法获得所需的结果。 谢谢进阶

解决方法

尽管您也可以将'^\s*$'modifier=>'mn'一起使用,但最简单的方法是替换多个chr(10):

DECLARE
   v_string VARCHAR2(4000) := 'A database is an organized collection of data,generally stored and accessed electronically 
   from a computer system. Where databases are more
  
  
   
  complex they are often developed 
  using formal design and modeling techniques.';
   v_sql_code_new VARCHAR2(4000);
BEGIN
   dbms_output.put_line(regexp_replace(v_string,chr(10)||'(\s*'||chr(10)||')+',chr(10)));
END;
/

\s*只是为了删除仅包含空格字符的行。