ORA-39242 錯誤,ora-39242錯誤
轉載:
Oracle 11g Release 1 (11.1) Data Pump 技術
http://docs.oracle.com/cd/B28359_01/server.111/b28319/dp_overview.htm#g1015896
本文內容
Oracle Data Pump 技術(Oracle 數據泵技術)可以讓你高速地把數據和元數據從一個數據庫移動到另一個數據庫。
Data Pump 組件
Data Pump 如何移動數據
參考資料
Data Pump 組件
Oracle Data Pump 由三個不同的部分組成:
命令行客戶端 expdp 和 impdp
DBMS_DATAPUMP PL/SQL 包(也叫 Data Pump API)
DBMS_METADATA PL/SQL 包(也叫 Metadata API)
Data Pump 客戶端 expdp 和 impdp 分別調用 Data Pump Export 和 Import 實用工具。
備注:
由 Data Pump 導出實用工具(expdp )導出的轉儲文件與原來的導出工具(exp)導出的文件不兼容。因此,由 exp 工具生成的文件不能使用 impdp 工具導入。
多數情況下,Oracle 推薦你使用 Data Pump Export 和 Import 實用工具。與原來的導出/導入工具相比,它們提供更強的數據移動性能。
expdp 和 impdp 客戶端程序通過在命令行輸入的參數,使用 DBMS_DATAPUMP PL/SQL 包中提供的存儲過程,執行導出和導入命令。這些參數可以導出和導入全部部分數據庫的數據和元數據。
當移動元數據時,Data Pump 使用 DBMS_METADATA PL/SQL 包提供的功能。DBMS_METADATA 包提供了一個集中化的設施,來提取、操作,和字典元數據的重新提交。
DBMS_DATAPUMP 和 DBMS_METADATA 包可以在命令行獨立使用。
備注:
所有的 Data Pump 導出和導入處理,包括讀寫轉儲文件,都是在你指定的數據庫上完成的。因此,對於沒有權限的用戶,DBA 必須在服務器的文件系統上為 Data Pump 文件創建讀寫的目錄對象。對於有權限的用戶,可以使用一個默認的目錄對象。
Data Pump 如何移動數據
Data Pump 使用四種機制來移動數據。按移動速度遞增排序,如下所示:
Data file 復制
Direct path
External tables
數據庫鏈路導入
備注:
Data Pump 不會加載禁用 unique 索引的那些表。如果數據被加載到這些表,那麼必須刪除或啟用索引。
備注:
有些情況,使用 direct path 或 external tables,Data Pump 將不能把數據加載到一個表。當表的屬性存在沖突時,就會發生。例如,如果一個表包含一個 LONG 類型的字段(它需要 direct path 訪問方法),但是有一個阻止 direct path 訪問的條件。此時,會產生一個 ORA-39242 錯誤。為了解決該問題,導入前,創建 LOB 列的表。這樣,可以執行導入,並使用值為 APPEND 或 TRUNCATE 的 TABLE_EXISTS_ACTION 參數。
參考資料
Oracle 11g Release 1 (11.1) Documents-Oracle Data Pump http://docs.oracle.com/cd/B28359_01/server.111/b28319/part_dp.htm#CEGJCCHC
最後嘗試 query_db 查詢庫 grant select on dba_tables to query_db;
導入成功