我有一个包含用户定义类型列的表,我试图将表移动到另一个模式,
使用命令行模式工作正常,但是当我尝试使用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'')');
答案 0 :(得分:1)
此问题可能与impdp
vs DBMS_DATAPUMP
无关。我曾经在导入对象关系表时遇到很多问题。我们从来没有找到解决方案,问题似乎是“随机的” - 它会工作一天,而另一个因为我们从未发现的原因而失败。如果我没记错的话,我们猜测对象关系依赖存在问题,并通过在导入的其余部分之前手动导入几种类型来解决问题。
另一种可能性是导入成功并且错误消息错误。请参阅文档ID 783358.1 - ORA-39117在Impdp级别上错误地报告,在support.oracle.com上。