インストールしたOracleXEに既存のデータベースのデータのDMPファイルをインポートしてみた。
ところが、何件か
ORA-00959: 表領域'HOGE'は存在しません。
といったエラーが発生して、インポートできないテーブルが存在する。正常にインポートされているテーブルの表領域も失敗したテーブルの表領域も同様の表領域なのに何故か失敗する。
基本的にOracleの場合、インポートする際の表領域は、エクスポートした際の表領域と同じ領域に展開しようとし、同一の表領域が無い場合はインポート先のユーザーのデフォルト表領域に展開されるはずなので問題なくインポートされるはずなのに何故?
ググっても原因が良くつかめなかったので、とりあえず↓
OracleXEに挑戦 - ド三流君がVB6でブラウザ作ってるよ
のBlogを参考にエクスポートした際の表領域と同じ名前の表領域を作成する。
CREATE TABLESPACE HOGE DATAFILE 'C:\oraclexe\oradata\XE\HOGE.DBF' SIZE 400M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
その後、インポートするとORA-00959は発生せず表領域HOGEに無事インポートされた。
んー、でも何故テーブルによってORA-00959が発生したりしなかったりするのか?謎のまま…。