我們從客戶端獲得* .dmp文件,其中包含一些被屏蔽的表數據,包括索引和約束。 我的結尾有這些表結構(包括索引和約束)。 我想使用'imp'命令在Oracle10g中只導入沒有索引和約束的數據(存在於.dmp文件中)。如何在Oracle中使用'imp'命令只導入沒有索引和約束的數據
我知道'imp'命令。請幫助我讓我知道'imp'命令中的選項只導入數據。
我試過使用 - rows = yes indexes = no但是這沒有幫助。
我們從客戶端獲得* .dmp文件,其中包含一些被屏蔽的表數據,包括索引和約束。 我的結尾有這些表結構(包括索引和約束)。 我想使用'imp'命令在Oracle10g中只導入沒有索引和約束的數據(存在於.dmp文件中)。如何在Oracle中使用'imp'命令只導入沒有索引和約束的數據
我知道'imp'命令。請幫助我讓我知道'imp'命令中的選項只導入數據。
我試過使用 - rows = yes indexes = no但是這沒有幫助。
我從你的文章中假設你已經在你的數據庫中有表和輔助結構,而你只是想壓制錯誤信息。如果確實如此,您想要的選項是IGNORE=Y
。
Oracle文檔可在線獲取。你不會說你使用的是什麼版本,但是當你使用IMP時,我會說9i是一個很好的選擇。 Find out more.。 (在更高版本中,您應該檢出DataPump)。
恕我直言IMP不能防止被應用的約束和觸發器被解僱,忽略= Y只會忽略出現的錯誤。也許datapump允許它,我不知道。
所以,你必須:
請小心使用與您的數據庫版本完全匹配的imp版本。我遇到了這個問題...
做Ignore=Y
。由於您已經擁有架構,因此它將忽略創建錯誤。
用show = y選項導入轉儲。這將從dmp文件創建/提取腳本。現在您可以從日誌中刪除索引和約束腳本並針對數據庫執行操作。
在這裏你可以看到很多exp /數據泵相關的例子。 http://www.acehints.com/p/site-map.html
您需要禁用所有觸發器,然後使用CONSTRAINTS = N參數導入數據。考慮導入表G3E_COMPONENT與約束,外鍵及觸發器:
SQL>alter table G3E_COMPONENT disable all triggers;
導入您的數據:
imp userid=USER/[email protected] CONSTRAINTS=N DATA_ONLY=Y STATISTICS=NONE file=export.exp log=imp.log TABLES=G3E_COMPONENT
應該做的伎倆
小鬼是向後兼容的,但不是向前兼容 – 2009-09-16 13:35:49
這將是預計,但不,根據我的經驗...... – 2009-09-16 20:30:14