Oracle SQL 関数 : TRANSLATE : 文字列置換

 charRet := TRANSLATE( charSrc , strSearch , strTranslate );

  TRANSLATEは文字データcharSrcを先頭からサーチし、文字列strSearchと一致する文字があった場合に
  変換文字列strTranslateの対応する文字に置換します。
  strTranslateがstrSearchより短い場合は、strSearchに対応する文字を削除します。
SQL> SELECT
  2   TRANSLATE('1234321', '123', 'ABC') AS TEST1 /* 1⇒A, 2⇒B, 3⇒C */
  3  ,TRANSLATE('1234321', '123', 'AB')  AS TEST2 /* 1⇒A, 2⇒B, 3⇒削除 */
  4  ,TRANSLATE('1234321', '12',  'ABC') AS TEST3 /* 1⇒A, 2⇒B*/
  5  ,TRANSLATE('あいうえお', 'あいう',  'AB') AS TEST4 /* あ⇒A, い⇒B, う⇒削除 */
  6  ,TRANSLATE('ABCDE', 'ABC',  'あい') AS TEST5 /* A⇒あ, B⇒い, C⇒削除 */
  7  FROM DUAL;

TEST1   TEST2 TEST3   TEST4  TEST5
------- ----- ------- ------ ------
ABC4CBA AB4BA AB343BA ABえお あいDE

TRANSLATEの注意点は、取扱が文字単位でありバイト単位ではないことです。上の例からも分かる様に、 シングルバイト文字とマルチバイト文字との変換が可能です。
但し、1文字単位での処理のため、「ダヂヅデド」などの半角の濁音文字を「ダヂヅデド」全角文字に変換するには 1回のTRANSLATEでは不可能ですので、PL/SQLで自分で関数を作るしかないかもしれません。