2014-06-27 37 views
2

我已經具有用戶定義類型的列的表中,我試圖表移動到一個不同的模式,Dbms_datadump失敗ORA-39117用於與用戶定義的類型的表

它工作得很好使用命令行模式,但是當我嘗試使用DBMS_DATAPUMP時,它會因ORA-39117錯誤失敗,下面是我使用的過濾器。

命令行模式:

bin/expdp user1/password1 directory=TEST_DIR1 include=TABLE:\"=\'TEST_TABLE_1\'\",TYPE:\"IN \(\'TEST_TYPE_1\'\)\" reuse_dumpfiles=y dumpfile=TEST.dmp logfile=expdpTEST.log 

bin/impdp user1/password1 directory=TEST_DIR1 include=TABLE:\"=\'TEST_TABLE_1\'\",,TYPE:\"IN \(\'TEST_TYPE_1\'\)\" dumpfile=TEST.dmp logfile=impdpTEST.log remap_schema=USER1:USER2 TRANSFORM=oid:n 

通過上面的命令,工作臺運動是成功的。但我們想用pl/sql塊來做同樣的事情。

===Export=== 

DBMS_DATAPUMP.metadata_filter (
     handle => h1, 
     name  => 'NAME_EXPR', 
     VALUE => 'IN(''TEST_TABLE_1'',''TEST_TYPE_1'')' 
); 

dbms_datapump.metadata_filter(
handle => h1, name => 'INCLUDE_PATH_EXPR', value => 'IN (''TABLE'',''TYPE'')'); 


===Import=== 

DBMS_DATAPUMP.metadata_filter (
     handle => h1, 
     name  => 'NAME_EXPR', 
     VALUE => 'IN(''TEST_TABLE_1'',''TEST_TYPE_1'')' 
    ); 
dbms_datapump.metadata_filter(
handle => h1, name => 'INCLUDE_PATH_EXPR', value => 'IN (''TABLE'',''TYPE'')'); 

回答

1

這個問題可能無關impdp VS DBMS_DATAPUMP。我曾經有很多導入對象關係表的問題。我們從來沒有找到解決方案,問題似乎是「隨機的」 - 它會工作一天,並因爲我們從未發現的原因而失敗。如果我沒有記錯,我們猜測對象關係依賴關係存在問題,並通過在導入的其餘部分之前手動導入一些類型來解決問題。

另一種可能性是導入成功,錯誤信息錯誤。請參閱文檔ID 783358.1 - ORA-39117在Impdp級別上錯誤報告,位於support.oracle.com上。

+0

按照建議的方法,導入工作正常,即。在導入表之前導入所有必需的類型。 –