目前大都也都使用 replace,範例如下:
程式碼
select replace('abcde', 'abc', '123')
from dual;
-- 結果: 123de
但若想把 abcde 字串中的 a to 1, c to 2, e to 3,以往做法如何呢 ?
程式碼
select replace( replace( replace ('abcde', 'a', '1'), 'c', '2'), 'e', '3' )
from dual;
-- 結果: 1b2d3
-- 但需要三層 replace 才可替換
用 translate 替換剛才的需求 :
程式碼
select translate ('abcde', 'ace', '123')
from dual;
-- 結果: 1b2d3
-- 只需一個 translate 即可.
再來看看 translate 的其他應用 :
程式碼
select translate ('abcde', 'ace', '12')
from dual;
-- 結果: 1b2d
-- 因為沒有指定 e 的替換字元,所以 e 就不見了.