-1

クエリは のような文字列を返しますAAA[][]AAA[][][][]BBB[][]BBB。4 つの連続するキャリッジ リターンをセミコロンに置き換える必要がありますが、連続する 2 つのキャリッジ リターンを置き換える必要はありません。私が試してみました

replace(STRING,chr(13)||chr(13)||chr(13)||chr(13),';')

しかし、それは効果がありません。どんな助けでも大歓迎です。

4

1 に答える 1

1

CHR(10)Linux/UNIX システムで使用します。Windows では、キャリッジ リターンは 2 文字で構成されますCHR(10)||chr(13)。Linux の場合:

SQL> WITH DATA AS (
  2     SELECT 'AAA
  3  
  4  AAA
  5  
  6  
  7  
  8  BBB
  9  
 10  BBB' txt FROM dual
 11  ) SELECT replace(txt, chr(10)||chr(10)||chr(10)||chr(10), ';') rep
 12      FROM DATA;

REP
------------------------------
AAA

AAA;BBB

BBB

改行を式で直接使用できるため、改行文字を使用してすべてのプラットフォーム/文字セットで動作させることができます (移植可能であるため、このソリューションをお勧めします)。

SQL> WITH DATA AS (
  2     SELECT 'AAA
  3  
  4  AAA
  5  
  6  
  7  
  8  BBB
  9  
 10  BBB' txt FROM dual
 11  ) SELECT replace(txt, '
 12  
 13  
 14  
 15  ', ';') rep FROM DATA;

REP
--------------------------
AAA

AAA;BBB

BBB
于 2013-02-18T11:06:11.960 に答える