2012-08-06 89 views
6

我有一個巨大的oracle數據庫的轉儲,所以它不可能全部導入。我想導入一個名爲X的特定表。問題是X有外鍵。如果我只導入X,我會收到以下錯誤:從Oracle轉儲文件導入特定表?

imp user/[email protected] tables=X rows=y ignore=Y 
ORA-02291: integrity constraint violated - parent key not found 

我已經有本地整個數據庫(但沒有數據),我想導入相關聯的所有表爲X.我怎樣才能做到這一點?我安裝了plsql。我還需要知道這些表的順序,以便首先知道要導入哪個表。

回答

1

有一些問題,所以我會盡量回答一個接一個。

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

沒有道理爲你知道你沒有父記錄表X.通過您可能還需要使用標誌CONSTRAINTS=N,因爲你已經有了DB正如你所說的方法,因爲想這。

「我想導入與X關聯的所有表格,我該如何實現這個目標?」

沒有辦法,只能手動查找所有依賴項(或使用數據字典表user_cons_columns,user_constraints等查找)並導入這些表。想想看,如果你不這樣做。你會破壞你的數據完整性。如果您仍然希望X表中沒有依賴關係的數據,請禁用約束,然後導入。但是,你不會再次啓用你的約束,我不知道你想要用破碎的數據做什麼。

「我還需要知道這些表的順序,才能知道最先導入哪個表。」

在導入之前禁用約束,然後在導入後啓用它們。在這種情況下,您不必擔心訂單。