ここでは、Oracleにおいて、ある項目(列)の文字が全て半角または全角文字であるかを確認するSQL文のサンプルを掲載しています。
スポンサーリンク
半角・全角文字であるかを確認する
以下がそのサンプルSQLです。詳細はサンプル内のコメントを参照ください。
-- 全角文字を含むレコードを抽出する(半角文字だけであれば文字数=文字のバイト数を利用) select length(col_hankaku), lengthb(col_hankaku) from test_table where length(col_hankaku) <> lengthb(col_hankaku) -- 半角文字を含むレコードを抽出する(全角文字だけであれば文字数×2=文字のバイト数を利用) select length(col_zenkaku), lengthb(col_zenkaku) from test_table where length(col_zenkaku) * 2 <> lengthb(col_zenkaku)
ただし、上記サンプルSQLは半角文字(半角カナを含む)が1バイト、全角文字が2バイトであることを前提としているため、文字コードがJA16SJIS ( JA16SJISTILDE ) である場合においてのみ利用することができます。
なお、Oracleの文字コードは以下のSQLで確認することができます。
select value from NLS_DATABASE_PARAMETERS where PARAMETER='NLS_CHARACTERSET'