質問: Windows XP上で動いていたOracle Database 10gのフルダンプがあります。 これを別のサーバー上のOracleにインポートしたいのですが、うまくいきません。 下記問題点の解決方法や他の作りやすい環境へのインポートなど、ご存じの型がいらっしゃいましたら、教えていただけないでしょうか? <ダンプログの先頭部分> 接続先: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production With the Partitioning, OLAP and Data Mining options JA16SJISキャラクタ・セットおよびAL16UTF16 NCHARキャラクタ・セットでエクスポートを実行します <VMware上のWindows XP Oracle 10g> Oracle10g windows版が手元にありました。 XPでしかインストール出来ないようでしたので、VMwareで環境を作って、インストールしました。 ※ Enterprize ManagerのDisk2が欠品しているのでインストールしていません 「IMP-00010: 有効なエクスポート・ファイルではありません。」エラーが発生したので、バイナリエディタで V10.01.00 ↓ V09.00.01 に変更しました。 それをインポートすると以下のエラーが出て、解決出来ずにいます。 ORA-00096: invalid value UNUSEDRETED for parameter plsql_compiler_flags, must be from among NON_DEBUG, DEBUG, INTERPRETED, NATIVE <Windows 10 Pro上のOracle 11g Express> 最初にインポートすると IMP-00003: Oracleエラー12899が発生しました。 ORA-12899: 列”xxxxxxx”."yyyyyy”."zzzzzzz"の値が大きすぎます(実際: 15、最大: 10) というエラーが出ました。 NLS_LANGを合わせる必要があると思い、 C:\>set NLS_LANG=JAPANESE_JAPAN.AL16UTF16 としましたが、 C:\>imp system/xxxxx FILE=expfull.dump fromuser=yyyyyy touser=yyyyyy ignore=y %s-%05d: IMP-00022: 0ム0・・・ソQ誥0kY1eW0W0~0W0_00リ0・ラ0宙hy:0Y0・k0o IMP-00000: 0ィ0・・Lvzu0W0_0_0・、0・ン0・ネ0筑BN・W0~0Y0 というメッセージになって、どうしようもなくなりました。 <CentOS 6.6上のOracle 11g Express> こちらでも同様にORA-12899になりました。 改行コードの問題かと思い、置換してからインポートしてましたが、同じ。 NLS_LANを合わせてみましたが、同じIMP-00022が出ました。 [root@localhost aaa]# export NLS_LANG=JAPANESE_JAPAN.AL16UTF16 [root@localhost aaa]# imp system/xxxxx file=expfull.dump fromuser=yyyyyy touser=yyyyy tables=zzzzz ignore=y %s-%05d: ?? IMP-00022: 0?0?0?0?0?Q?t0kY1eW0W0~0W0_00?0?0?0??hy:0Y0?0k0o IMP-00000: 0?0?0?0Lvzu0W0_0_0?0?0?0?0?0?0?}BN?0W0~0Y0
回答: AL16UTF16でデータベースを作り直さないといけないようです。 作り直そうとしていますが、うまくいっていないので、別途質問を立てます。