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をダウンロードして中身を見てみます。
改行コードが削除されていることが分かります。
今回は削除でしたが、他の文字に置き換えたい場合は、REPLACE関数の第2引数の値を変えてみて下さい。
関連記事
【Oracle】改行コードの種類と使用方法(サンプルクエリ)
Oracleの改行コードの種類です。CHRを使用すれば、改行コードを使うことが出来ます。