Извлечь код или 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.)