Oracle8iからOracle10gへの引っ越し

Oracle8iからOracle10g XEへの引っ越しメモ。

 

■データのエクスポートの前準備

キャラクタセットを確認しておく。EUCでエクスポートされることが分かる。

$ echo $NLS_LANG
Japanese_Japan.JA16EUC

 

キャラクタセットをSJISでエクスポートしたいときはNLS_LANGを指定しておく。

$ export NLS_LANG=Japanese_Japan.JA16SJIS

  

 

■データをエクスポートする 

全テーブルをエクスポートする場合。

$ exp ユーザ名/パスワード file=oracle8.dmp log=exp.log

 

一つのテーブルEMPをエクスポートする場合。

$ exp ユーザ名/パスワード tables=EMP file=ora.dmp log=ora.log compress=y

 

詳細は、expのヘルプを確認する。

$ exp help=y

 

NLS_LANGに合わせて、ターミナルの文字セットエンコーディングを合わせておくと文字化けせずに出力メッセージが読める。

 

■データのインポート

 書き込まれる文字コードを確認しておく。

$ echo $NLS_LANG
JAPANESE_JAPAN.AL32UTF8

 

テーブルをインポートする。

$ imp userid=ユーザ名 ignore=y file=oracle8.dmp fromuser=旧ユーザ名 touser=ユーザ名

ユーザ名: 10gで使っているユーザ名

旧ユーザ名: 8iでエクスポートしたユーザ名

8iのときのユーザ名と10gのユーザ名をきちんと指定しないとインポートできないので注意。

 

インポート時のキャラクタセットについてのメッセージ。 

 エクスポート・ファイルはEXPORT:V08.01.05によって従来型パス経由で作成されました
AL32UTF8キャラクタ・セットおよびAL16UTF16 NCHARキャラクタ・セットでインポートを
実行します  

 

きちんと、EUCからUTF8へ変換されてインポートされたか、sqlplusで確認しておく。