Develop with pleasure!

福岡でCloudとかBlockchainとか。

OracleXEの表領域でハマる。

インストールした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が発生したりしなかったりするのか?謎のまま…。