Извлечь код или script объектов базы данных
Мне нужно извлечь код (script) из всех моих функций, процедур, пакетов, представлений и таблиц, поэтому, когда я перехожу к производству, я могу запустить script для создания всех объектов.
При разработке я не использовал script резервную копию всех объектов базы данных.
Каков наилучший способ извлечь код или script? Любое предложение или помощь очень заметны.
Спасибо
Ответы
Ответ 1
Вы используете систему контроля версий, не так ли? Пожалуйста, сделайте.
В противном случае вы можете использовать системную функцию dbms_metadata.get_ddl
, которая вернет clob DDL, используемого для создания объекта. Это нужно сделать для каждого отдельного объекта, чтобы было возможно выполнить цикл user_objects
.
В качестве альтернативы вы можете найти определения в PL/SQL Developer, щелкнув правой кнопкой мыши на объекте и используя опцию view
, а затем в правом нижнем углу вы можете просмотреть SQL, используемый для создания объекта.
Существует также экспортный инструмент, который не имеет достаточного объяснения того, как использовать его в качестве варианта SQL Developer.
Конечно, правильный ответ - получить систему контроля версий и использовать ее.
Ответ 2
Я не знаю о самой базе данных, но SQL Developer сделает это. Я уверен, что TOAD и другие подобные инструменты также будут.
Ответ 3
Извините, но у вас есть неоптимальная практика разработки, которая не масштабируется за пределами одного разработчика.
Никогда не используйте возможности клиентов SQL GUI для редактирования объектов базы данных непосредственно в базе данных. (Если вы намеренно не хотите создавать искусственные проблемы.)
Вместо этого все SQL и PL/SQL DDL и DML должны располагаться в текстовых файлах, сохраненных в системе управления версиями (VCS) (например, subversion, git, mercurial). Используйте любимый редактор для редактирования файлов.
Измените базу данных, выполнив текстовые файлы, сохраненные в VCS, с помощью инструмента командной строки (в Oracle, который sqlplus
). Это относится ко всем экземплярам базы данных: разработка, QA, производство.
Для крупных проектов разработки рассмотрите возможность использования инструментов миграции схемы (например, Flyway, Roundhouse).
На протяжении многих лет я смог устранить тонны проблем развития и производства, применяя простое правило:
Если код отсутствует в VCS, он не существует.
(Удивительно, что еще в 2015 году многие команды разработчиков не используют VCS.)