#oracle #impdp
#Oracle #impdp
Вопрос:
Я пытаюсь импортировать нашу базу данных, которая находится в WE8MSWIN1252
экземпляре, в новый AL32UTF8
экземпляр. Я использую impdp
инструмент для достижения этой цели. Я получаю следующую ошибку
Обработка типа объекта SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC ORA-39083: тип объекта ALTER_PACKAGE_SPEC: «Мой владелец».»MyPackageOwner» не удалось создать с ошибкой: ORA-00904: «DECL_OBJ #»: недопустимый идентификатор
Пожалуйста, обратите внимание, что когда я компилирую этот пакет, используя SQLplus
его, он работает должным образом, есть ли у вас какие-либо идеи о том, что может вызвать эту ошибку? Спасибо, Билел
Комментарии:
1. Возможно, это связано ? Исправление в любом случае (для просмотра которого вам нужен контракт на поддержку), если не точный сценарий… Поэтому вам может потребоваться вызвать SR в Oracle для подтверждения и получения подробной консультации.
Ответ №1:
Откройте SQL Developer. Установите для параметра идентификаторы PLScope (Инструменты> Настройки> База данных> Компилятор PL / SQL> Идентификаторы PLScope) значение All равным None. Закройте и откройте SQL Developer.
Это решило мою проблему.
Ответ №2:
В упомянутой выше заметке службы поддержки Oracle говорится, что эта ошибка связана с SQL Developer и конкретной исправленной версией Oracle DB (12.2.0.1.181016).
В качестве обходного пути, похоже, вы можете отключить PL / Scope (функциональность для анализа и анализа кода PL / SQL) следующим образом :
- Open SQL Developer Установите для параметра идентификаторы PLScope (Инструменты> Настройки> База данных> Компилятор PL / SQL> Идентификаторы PLScope) значение «Все» на «Нет».
- Закройте и откройте SQL Developer
Комментарии:
1. Я не использую Sql developer, я использую инструмент datadump.
2. В примечании к поддержке явно говорится, что на самом деле это не проблема разработчика SQL, но предлагает обходной путь (который вы не должны воспроизводить, уверен, что это нарушает условия вашего контракта на поддержку …), Если вы столкнулись с этим из SQL Developer. Но похоже, что основная проблема также может быть в том, что влияет
impdp
здесь. Таким образом, фактическое исправление (не обходной путь) может сработать и для этого сценария, но оператору действительно нужно запросить Oracle (через запрос на обслуживание).3. верно, но поскольку impdp может быть запущен из SQL Developer, это могло быть так, спасибо Алексу за добавление разъяснений.
Ответ №3:
Я только что исключил представления, пакеты и package_compile из экспорта, и это сработало, как ожидалось.