カナ文字の半角または全角への変換(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」の引数には、他にも指定できるものがあるので、詳しくは以下のリンクを参照してください。