Oracle 文字列の半角チェックを行う方法
Oracleで文字列が半角のみかどうかのチェックを行う方法を紹介します。
Oracle 文字列の長さを文字数またはバイト数で取得するで紹介した方法で、文字列の長さを文字数とバイト数でそれぞれ取得します。
取得した長さを比較して、文字数とバイト数で差異があれば全角文字が含まれていることになります。
なので、以下のように文字数とバイト数が等しいかどうかで半角かどうかを判定します。
| KEY1 | COLUMN1 | 
|---|---|
| 1 | 12345 | 
| 2 | あいうえお | 
| 3 | 123あ | 
SELECT
  COLUMN1,
  CASE WHEN LENGTH(COLUMN1) = LENGTHB(COLUMN1) THEN 1 ELSE 0 END NARROW
FROM
  TABLE1| COLUMN1 | NARROW | 
|---|---|
| 12345 | 1 | 
| あいうえお | 0 | 
| 123あ | 0 | 
普通のSQLでは使用する場面はあまりないかもしれませんが、PL/SQLなどでは使用することがあると思います。