OracleのJIS2004対応 概要編

投稿者: | 9月 21, 2011

OracleのJIS2004対応について考えると、大きく分けて2種類の対応方法がある。DB全体でJIS2004に対応する方法と、DBの一部でJIS2004に対応する方法である。それぞれの方法を図示すると、下のようになる。

4-4-02

パターンAが、DB全体でJIS2004に対応する方法である。DBのキャラクタセットを「AL32UTF8」にすることでDB全体でJIS2004を扱えるようになる。

パターンBが、DBの一部でJIS2004に対応する方法である。DBのキャラクタセットは「JA16SJISTILDE」で、各国語・キャラクタセットを「AL16UTF16」にする。データ型が、NCHAR、NVARCHAR2およびNCLOBのカラムのみJIS2004を扱えるようになる。

これだけ見ると、パターンAを選択するのがベストに見える。しかし、パターンAには、いくつかの注意点があり、それを許容できない場合はパターンBを採用することになる。

パターンAの注意点

パターンAには以下の注意点があり、それを考慮した設計が必要になる。例えば既存アプリのJIS2004対応を実施する場合には、つらい場合がある。テーブル名や列名に日本語を使用している場合や、HDD容量に余裕がない場合である。

  • 文字のバイト数の違いによる、文字数からバイト数を計算するのが面倒。
    • シフトJISは、全角2バイト、半角1バイト
    • UTF8は、全角3バイト、半角1バイト、半角カナ2バイト
    • データ型やプログラム製造時に注意が必要。扱っているのがバイト数か文字数なのかを意識する必要がある
  • DB容量の増加
    • JA16JISTILDEに比べ、1.5~3倍ぐらいの容量を見積もる必要がある
  • テーブル名や列名に日本語を使用する場合、10文字以下しか使用できない
参照情報
関連情報

パターンBの場合について、調査をした結果が次の2つのエントリーである。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください