ablog

不器用で落着きのない技術者のメモ

export/import による JA16SJIS のデータベースから JA16SJISTILDE のデータベースへのデータ移行

export/import で JA16SJIS のデータベースから JA16SJISTILDE のデータベースへデータ移行を行って問題がないか調べてみた。
以下は机上で検証してみた結果。

結論

  • 問題なし。
  • JA16SJISTILDE と JA16SJIS の違いは一点。
  • JA16SJISTILDE は SJISUnicode に変換する際に 0x8160(チルダ) を U+FF5E にするという点。
  • よって、0x8160 以外は JA16SJIS → JA16SJISTILDE に移行しても同じコードになる。
  • 0x8160 についても、0x8160 → U+301C → 0x8160 と変換され同じコードになる。
  • 結果、全ての文字について移行元と移行先で同じコードになるため問題ない。

補足

変換方向 JA16SJIS JA16SJISTILDE
SJISUnicode 0x8160 → U+301C 0x8160 → U+FF5E
UnicodeSJIS U+301C → 0x8160
U+FF5E → 0x8160
U+301C → 0x8160
U+FF5E → 0x8160
  • JA16SJIS のデータベースから export して JA16SJISTILDE のデータベースに import する際のエンコーディングの変換は以下の通り。
    • export時は NLS_LANG に ...JA16SJIS を、import時は NLS_LANG に ...JA16SJISTILDE を指定するものとする。
移行元データベース(JA16SJIS) --- 0x8160
↓
export --- 変換なし
↓
dumpファイル
↓
import --- 0x8160 → U+301C → 0x8160
↓
移行先データベース(JA16SJISTILDE) --- 0x8160