6

巨大なOracleデータベースのダンプがあるので、すべてをインポートすることは不可能です。Xという特定のテーブルをインポートしたいのですが、問題はXに外部キーがあることです。Xだけをインポートすると、次のエラーが発生します。

imp user/pass@dbName tables=X  rows=y ignore=Y
ORA-02291: integrity constraint violated - parent key not found

私はすでにデータベース全体をローカルに持っています(ただしデータはありません)。Xに関連付けられているすべてのテーブルをインポートしたいのですが、どうすればそれを実現できますか?plsqlをインストールしました。また、最初にインポートするテーブルを知るには、これらのテーブルの順序を知る必要があります。

4

2 に答える 2

3

インポートする前にすべてのDB制約を無効にし、後で再度有効にします。見る:

于 2012-08-06T08:27:36.023 に答える
1

質問が少ないので一つずつお答えしていきます。

ORA-02291: integrity constraint violated - parent key not found

テーブルXの親レコードがないことを知っているので、これを推測するのは簡単です。ちなみに、あなたが言ったように、CONSTRAINTS=Nすでにdbを持っているので、フラグを使用することもできます。

「Xに関連付けられているすべてのテーブルをインポートしたいのですが、どうすればそれを実現できますか?」

すべての依存関係を手動で検索し(またはデータディクショナリテーブルなどを使用してルックアップし)、それらのテーブルもインポートする以外に選択肢はありませuser_cons_columnsuser_constraints。そうしない場合は考えてみてください。データの整合性が損なわれます。それでも依存関係のないテーブルXのデータが必要な場合は、制約を無効にしてからインポートします。ただし、制約を再度有効にすることはできず、壊れたデータをどのように処理するかわかりません。

「最初にインポートするテーブルを知るには、これらのテーブルの順序も知る必要があります。」

インポート前に制約を無効にし、インポート後に有効にします。その場合、注文について心配する必要はありません。

于 2013-03-21T02:09:36.737 に答える