SQL скрипт для обновления пакета - PullRequest
3 голосов
/ 21 февраля 2012

Я работаю над базой данных oracle, в которой есть пакет с некоторыми хранимыми процедурами, уже определенными и объявленными.

Мне нужно добавить несколько новых хранимых процедур и определений типов, что я уже сделал в среде разработки, используя инструмент разработки SQL и работая непосредственно над пакетом. Но теперь, чтобы передать его в следующую среду, мне нужно предоставить сценарий sql для добавления моих изменений в среду тестирования.

Единственный способ, который я нашел, - это создать сценарий sql для СОЗДАНИЯ ИЛИ ЗАМЕНЫ всей информации о пакете, а не только моих изменений. И я боюсь, что среда, в которой я делаю это развертывание, не является копией среды разработки.

Любая помощь?

Ответы [ 2 ]

8 голосов
/ 21 февраля 2012

Если код пакета в вашей тестовой среде не синхронизирован с кодом в вашей среде разработки, вам действительно нужно обратиться к до того, как вы начнете работать над любыми изменениями кода в версии разработки.код.Другими словами, вы хотели бы убедиться, что версия разработки пакета соответствует тесту, и , а затем внести ваши изменения.

Вы правы, что CREATE OR REPLACE PACKAGE - это способ написатьсценария, но вы должны быть уверены, что делаете это как для спецификации пакета, так и для тела пакета, поэтому понадобятся 2 команды.

Поскольку вы уже внесли изменения в разработку, и выВы не уверены, что версия, с которой вы начали тестирование на соответствие разработкам, проверьте, может ли ваш администратор базы данных предоставить вам копию спецификации пакета и тела из теста, тогда вы можете запустить diff для кода разработки и тестирования, чтобы выяснить,различия.Перед распространением кода для тестирования вам придется синхронизировать все различия обратно в версию для разработки.

Один удобный инструмент, который мне нравится для выполнения графической операции сравнения, - это diffmerge, и вы можете найти его здесь: http://www.sourcegear.com/diffmerge/

3 голосов
/ 21 февраля 2012

Вы можете найти код обеих сред из all_source , IE:

Select text
from all_source
where owner = '<the owner of the package>'
and type = 'PACKAGE BODY'
and name = '<the package name>';

, затем вы можете сравнить и внести необходимые изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...