zukucode
主にWEB関連の情報を技術メモとして発信しています。

Oracle 文字列の半角チェックを行う方法

Oracleで文字列が半角のみかどうかのチェックを行う方法を紹介します。

Oracle 文字列の長さを文字数またはバイト数で取得するで紹介した方法で、文字列の長さを文字数とバイト数でそれぞれ取得します。

取得した長さを比較して、文字数とバイト数で差異があれば全角文字が含まれていることになります。

なので、以下のように文字数とバイト数が等しいかどうかで半角かどうかを判定します。

TABLE1
KEY1COLUMN1
112345
2あいうえお
3123あ
SELECT
  COLUMN1,
  CASE WHEN LENGTH(COLUMN1) = LENGTHB(COLUMN1) THEN 1 ELSE 0 END NARROW
FROM
  TABLE1
取得結果
COLUMN1NARROW
123451
あいうえお0
123あ0

普通のSQLでは使用する場面はあまりないかもしれませんが、PL/SQLなどでは使用することがあると思います。


関連記事