記事内に広告が含まれています。

【Oracle】不要な改行コードを置換・削除する

Oracleにおいて、特定カラムに不要な改行コードが含まれていた場合、置換・削除する方法です。

【スポンサーリンク】

不要な改行コードを置換・削除する

REPLACE関数を用いることで不要な改行コードを置換・削除することが出来ます。

--CRを削除
REPLACE('1行目' || CHR(13) || '2行目', CHR(13), '')
--LFを削除
REPLACE('1行目' || CHR(10) || '2行目', CHR(10), '')
--CR+LFを削除
REPLACE('1行目' || CHR(13) || CHR(10) || '2行目', CHR(13) || CHR(10), '')

REPLACE関数の第1引数に、改行コードを含む文字列を渡し、第2引数に削除したい改行コードを渡します。

【スポンサーリンク】

サンプル(実行例)

サンプルクエリです。DUALから抽出してるので、そのまま貼り付けて試すことが出来ます。

--CRを削除
SELECT '1行目' || CHR(13) || '2行目' AS 対象
      , REPLACE('1行目' || CHR(13) || '2行目', CHR(13), '') AS 削除後
  FROM dual
  UNION ALL
--LFを削除
SELECT '1行目' || CHR(10) || '2行目' AS 対象
      , REPLACE('1行目' || CHR(10) || '2行目', CHR(10), '') AS 削除後
  FROM dual
UNION ALL
--CR+LFを削除
SELECT '1行目' || CHR(13) || CHR(10) || '2行目' AS 対象
      , REPLACE('1行目' || CHR(13) || CHR(10) || '2行目', CHR(13) || CHR(10), '') AS 削除後
  FROM dual;

これを実行してみます。

 

Oracle APEX 上の結果だと分かりずらいので、CSVをダウンロードして中身を見てみます。

CSV上で実行結果を確認

改行コードが削除されていることが分かります。

今回は削除でしたが、他の文字に置き換えたい場合は、REPLACE関数の第2引数の値を変えてみて下さい。

【スポンサーリンク】

関連記事

【Oracle】改行コードの種類と使用方法(サンプルクエリ)
Oracleの改行コードの種類です。CHRを使用すれば、改行コードを使うことが出来ます。