2019.4.15
2020.1.7

カナ文字の半角または全角への変換(UTL_I18N.TRANSLITERATE)

Oracleでカナ文字を半角から全角、または全角から半角へ変換する場合、「UTL_I18N.TRANSLITERATE」を使用します。

古いバージョンでは「UTL_I18N.TRANSLITERATE」は使えないようなので、注意してください。

目次

  • 半角から全角への変換(hwkatakana_fwkatakana)
  • 全角から半角への変換(fwkatakana_hwkatakana)
  • 備考

半角から全角への変換(hwkatakana_fwkatakana)

半角文字から全角へ変換する場合は、Oracleの関数「UTL_I18N.TRANSLITERATE」の引数に「hwkatakana_fwkatakana」を指定します。

コードと実行結果は以下の通り。


SELECT UTL_I18N.TRANSLITERATE('1,234.56 +-*/ abc アイウ ガギグ パピプ', 'hwkatakana_fwkatakana') FROM DUAL;

-----------------------------------
1,234.56 +-*/ abc アイウ ガギグ パピプ

TO_MULTI_BYTEでは、数字、記号、アルファベットが変換対象でしたが、UTL_I18N.TRANSLITERATEを使った場合、カナのみが変換対象になります。

そのため、数字、記号、アルファベット、カナのすべての文字を半角から全角に変換する場合、以下のようにします。


SELECT TO_MULTI_BYTE(UTL_I18N.TRANSLITERATE('1,234.56 +-*/ abc アイウ ガギグ パピプ', 'hwkatakana_fwkatakana')) FROM DUAL;

-----------------------------------
1,234.56 +-*/ abc アイウ ガギグ パピプ

全角から半角への変換(fwkatakana_hwkatakana)

全角文字から半角へ変換する場合は、Oracleの関数「UTL_I18N.TRANSLITERATE」の引数に「fwkatakana_hwkatakana」を指定します。

コードと実行結果は以下の通り。


SELECT UTL_I18N.TRANSLITERATE('1,234.56 +-*/ abc アイウ ガギグ パピプ', 'fwkatakana_hwkatakana') FROM DUAL;

-----------------------------
1,234.56 +-*/ abc アイウ ガギグ パピプ

同様に、すべての文字を対象にする場合は以下のようにします。


SELECT TO_SINGLE_BYTE(UTL_I18N.TRANSLITERATE('1,234.56 +-*/ abc アイウ ガギグ パピプ', 'fwkatakana_hwkatakana')) FROM DUAL;

-----------------------------
1,234.56 +-*/ abc アイウ ガギグ パピプ  

備考

関数「UTL_I18N.TRANSLITERATE」の引数には、他にも指定できるものがあるので、詳しくは以下のリンクを参照してください。

Oracle】関連記事