2019.4.15
2020.1.7

数字や記号、アルファベットの半角または全角への変換(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と同様に、数字、記号、アルファベットは正常に変換されていますが、カナは変換できずにそのまま出力されます。

Oracle】関連記事