IMPDP INCLUDE=JAVA_CLASS не работает с REMAP_SCHEMA
Мы экспортируем схему базы данных X на сервере базы данных A и импортируем ее в схему Y на сервере базы данных B с помощью REMAP_SCHEMA и REMAP_TABLESPACE, а также включаем java-файлы с INCLUDE=JAVA_CLASS.
impdp system/*** DIRECTORY=expdp REMAP_SCHEMA=X:Y REMAP_TABLESPACE=X_TS:Y_TS DUMPFILE=X.dmp PARALLEL=2 LOGFILE=X_Y.dmp.imp.log INCLUDE=JAVA_CLASS
Запуск вышеуказанного оператора дает мне следующую ошибку:
Processing object type SCHEMA_EXPORT/JAVA_CLASS/JAVA_CLASS
ORA-39083: Object type JAVA_CLASS failed to create with error:
ORA-31625: Schema X is needed to import this object, but is unaccessible
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86
ORA-06512: at "SYS.KUPW$WORKER", line 9189
ORA-01435: user does not exist
Failing sql is:
DECLARE STATUS NUMBER; BEGIN STATUS := DBMS_JAVA.START_IMPORT('path/to/function$1', 0,29,0,3,424,1); IF STATUS !=0 THEN IF STATUS > 0 THEN STATUS := -STATUS; E
Видя схему X в этом сообщении об ошибке, я понимаю, что переназначение Y не работает для объектов Java.
Использовали 12cR2 с автономными экземплярами. Может ли кто-нибудь помочь нам импортировать и переназначить Java-классы?
Предыстория истории:
В прошлом году мы просто экспортировали схему X, импортировали ее в схему Y и затем загружали классы Java, используя loadjava
и *.jar
файл.
Теперь какой-то разработчик решил создать витруальную табличную колонку, используя импортированную функцию Java. Следовательно, наш impdp не смог импортировать файл дампа, потому что мы не передали функции Java во время импорта.
Мы решили включить функции Java в оператор импорта (INCLUDE=JAVA_CLASS
), но теперь ошибка выше происходит.
Исходная команда impdp и возникшая ошибка при импорте и переназначении:
impdp system/*** DIRECTORY=expdp REMAP_SCHEMA=X:Y REMAP_TABLESPACE=X_TS:Y_TS DUMPFILE=X.dmp PARALLEL=2 LOGFILE=X_Y.dmp.imp.log
ORA-39083: Object type TABLE:"Y"."RESULT_TABLE" failed to create with error:
ORA-00904: "Y"."UTL"."SOME_FUNCTION": invalid identifier
Failing sql is:
ALTER TABLE "Y"."RESULT_TABLE" MODIFY ("COLUMN_A" NUMBER GENERATED ALWAYS AS ("Y"."UTL"."SOME_FUNCTION"("COLUMN_A",1,18)) VIRTUAL )
Большое спасибо.
РЕДАКТИРОВАТЬ: Ни X, ни Y не являются системными схемами.