ふと忘れてしまうのが、キャラクタセットのコード設定。11gのインストールがうまく終了しない ことに気をとられてしまい、キャラクタセットのコード設定でつまずく。
Oracle11gのキャラクタセットは、無指定だと「AL32UTF8」で作成されます。 ここで注意が必要なのが JA16SJIS で作成されたDBを移行する場合です。
Oracleで許可されているデータベースオブジェクト名のサイズはマニュアルに記載されているように、データベース名とデータベースリンク名を除いて 30バイトまでとなっています。
JA16SJIS → AL32UTF8- ディスク容量の見直。
- JA16SJISで2バイトであった文字がAL32UTF8では3バイトになる。
JA16SJISのデータベースで表示名や列名を日本語(マルチバイト)11文字以上で定義していた場合、キャラクタセットが AL32UTF8 であるデータベースではDDLすべてがエラーになる。
それらを修正するとなるとSQL/DDL文・その他プログラムに至るまで、その影響は広範囲に渡ります。
DBをインストールする機会がたびたびある訳ではないので、以外に上記のことを忘れがちです。 JA16SJISで日本語で15文字以内で項目名や表名を定義しているとAL32UTF8では、10文字以内にすることが必要になり、日本語10文字ですべてをうまく表現するのはなかなか難しいものです。
いずれAL32UTF8にしようと考えている場合は、修正コストは掛かりますが日本語名から英数字名に変更するか、日本語項目名を10文字以内にして修正を行っておくことを薦めます。
0 件のコメント:
コメントを投稿