Ошибка Dbms_datadump с ORA-39117 для таблицы с пользовательским типом

#oracle11g #datapump

#oracle11g #datapump

Вопрос:

У меня есть таблица, в которой есть столбец пользовательского типа, я попытался переместить таблицу в другую схему,

Он отлично работал в режиме командной строки, однако, когда я пытаюсь использовать 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 .

Комментарии:

1. Импорт работал нормально, следуя предложенному подходу, т.Е.. импортируйте все необходимые типы перед импортом таблиц.