数字や記号、アルファベットの半角または全角への変換(TO_MULTI_BYTE、TO_SINGLE_BYTE)
Oracleで数字や記号、アルファベットなどの文字を半角から全角、または全角から半角へ変換する方法になります。
先に言っておきますが、今回、紹介する半角から全角への変換(TO_MULTI_BYTE)と、逆の全角から半角への変換(TO_SINGLE_BYTE)では、カナ文字を変換することができません。カナ文字の全角・半角の変換を行いたい場合、「UTL_I18N.TRANSLITERATE」を使います。
半角から全角への変換(TO_MULTI_BYTE)
半角文字から全角へ変換する場合は、Oracleの関数「TO_MULTI_BYTE」を使用します。
コードと実行結果は以下の通り。
SELECT TO_MULTI_BYTE('1,234.56 +-*/ abc アイウ ガギグ パピプ') FROM DUAL;
-----------------------------------
1,234.56 +-*/ abc アイウ ガギグ パピプ
数字、記号、アルファベットは正常に変換されていますが、カナは変換できずにそのまま出力されます。
全角から半角への変換(TO_SINGLE_BYTE)
全角文字から半角へ変換する場合は、Oracleの関数「TO_SINGLE_BYTE」を使用します。
コードと実行結果は以下の通り。
SELECT TO_SINGLE_BYTE('1,234.56 +-*/ abc アイウ ガギグ パピプ') FROM DUAL;
-----------------------------
1,234.56 +-*/ abc アイウ ガギグ パピプ
TO_MULTI_BYTEと同様に、数字、記号、アルファベットは正常に変換されていますが、カナは変換できずにそのまま出力されます。