OracleでREGEXP_REPLACE関数を使って文字列を置換

2021年11月18日

環境
Oracle 12.2.0.1.0

説明
REGEXP_REPLACEは、正規表現パターンで文字列を検索できるようにREPLACEの機能を拡張したものです。デフォルトでは、このファンクションは、
正規表現パターンのすべての出現箇所をreplace_stringに置き換えてsource_charを戻します。

使用例
1.NEWS_TBLテーブルのTITLE列の文字「-」を「*」に置き換えます

UPDATE NEWS_TBL SET TITLE = REGEXP_REPLACE(TITLE,'-','*')

2. 文字列内のすべての数値を置換します

WITH CFT AS (   
  SELECT 'TEST56' S FROM DUAL UNION ALL   
  SELECT 'STUDY123' S FROM DUAL UNION ALL   
  SELECT 'K5D6F4C' S FROM DUAL   
)   
SELECT S "ORGSTR", REGEXP_REPLACE(S, '[0-9]', '') "MODIFIED_STRCOL"  
 FROM CFT;

実行結果

ORGSTR	    MODIFIED_STRCOL
TEST56	    TEST
STUDY123	 STUDY
K5D6F4C	    KDFC

 

Oracle 12c

Posted by arkgame