мы внедряем систему модульного тестирования нашего производственного объекта базы данных, такого как package, process, trigger & co. Для этого у нас есть контейнер, который создает базу данных из https://github.com/oracle/docker-images/tree/master/OracleDatabase.
Затем мы выполняем сценарии, которые создают схему, пользователей, предоставляют некоторые привилегии, создают хорошие табличные пространства ... Затем мы используем Data Pump Oracle для расширения и расширения схемы. Эти шаги успешны.
Проблема возникает, когда мы пытаемся выполнить тест наших процедур и пакетов. Они не найдены в схеме из-за ошибки компиляции "ORA-38824: команда CREATE OR REPLACE не может изменить свойство EDITIONABLE существующего объекта".
Но если мы отбросим проверенную процедуру, а затем создадим ее заново, ошибка больше не появится. Дело в том, что мы не хотим вручную удалять и заново создавать процедуру.
единственное различие между нашей средой и базой данных контейнеров состоит в том, что когда мы создаем процедуру / пакет с нуля, редактируемый параметр в деталях объекта находится в 'N' в контейнере, когда он находится в 'Y' в нашей среде.
Похоже, что редактируемый параметр для объектов должен быть установлен на уровне базы данных.
Но вопрос в том, где его можно установить?
Мы пытались «ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ X РАЗРЕШЕННЫМИ ИЗДАНИЯМИ»; безуспешно, поскольку это вызывает «ORA-38813: выпуски, не поддерживаемые для схемы X».
Неужели Impdp & Expdp вызывают проблемы?
Мы попытались использовать 'source_edition' и 'target_edition' для нашего процесса expdp impdp.
Мы явно что-то упускаем или делаем что-то не так, но мы не можем найти что.
Я искал в интернете, но не слишком много людей сталкивалось с этой проблемой ..
Не могли бы вы предоставить нам помощь?
Заранее спасибо.
Винсент.