資料庫中字符串的替換是比較常用的操作,Oracle已經為我們提供了幾個實用的函數來處理字符串的替換操作,常用的主要有replace、regexp_replace 和 translate三個函數,接下來我們來逐個看下。
一、replce方法
用法1:REPLACE(sourceStr, searchStr, replacedStr)
sourceStr標識要被替換的欄位名或字符串,searchStr表示要被替換掉的字符串,replacedStr表示要替換成的字符串。
用法2:REPLACE(sourceStr, searchStr)
sourceStr標識要被替換的欄位名或字符串,searchStr表示要被剔除掉的字符串。
二、regexp_replace
用法1:regexp_replace(sourceStr, patternStr, replacedStr)
sourceStr標識要被替換的欄位名或字符串,patternStr表示要被替換掉的正則表達式匹配的字符串,replacedStr表示要替換成的字符串。
用法2:regexp_replace(sourceStr, patternStr)
sourceStr標識要被替換的欄位名或字符串,patternStr表示要被剔除掉的正則表達式匹配的字符串。
三、translate
用法:TRANSLATE('sourceStr', 'fromStr', 'toStr')
以字符為單位,把 sourceStr 中的 fromStr 字符對應替換為 toStr。若 fromStr 比 toStr 長,那麼在 fromStr 中而不在 toStr 中的字符將被剔除,因為沒有對應的替換字符。若三個參數中有一個是空,返回值也將是空值。
我們來總結下,regexp_replace和replace的功能十分相似,但是regexp_replace功能更強大,加入了正則匹配,使用更加靈活,適合於更複雜的字符串替換的情況。一般情況下,replace函數已經能夠滿足大部分的字符串替換需求了。而replace和translate的區別是,replace針對的是字符串,translate針對的是單個字符。
綜上,替換字符串的三個函數,五種用法,你都了解了嗎?