локальный пакет diff с пакетом базы данных - PullRequest
2 голосов
/ 08 февраля 2012

Мне нужно как-то сравнить локальную версию пакета pl sql с той, которая хранится в базе данных.Есть ли какой-нибудь "легкий" способ сделать это?В настоящее время я загружаю пакет из базы данных, сохраняю его в некотором файле и выполняю diff, используя какой-либо инструмент diff.Это немного громоздко, поэтому мне бы хотелось иметь такую ​​функцию в ide (pl sql developer предпочтительнее).

Ответы [ 2 ]

4 голосов
/ 09 февраля 2012

Обычно разработчики используют программное обеспечение управления версиями для проверки различий, ведения истории версий и помогают координировать разработку кода командой. Код PL / SQL не должен отличаться. Есть много способов справиться с выпусками кода, вот то, что я видел, это не обязательно «лучший» способ.

В средах Oracle, которые я видел, используется CVS или SVN. Большинство подходов включают извлечение последнего кода из репозитория, редактирование (тегирование / ветвление) и регистрацию. Когда код протестирован (экземпляр разработки) и выпуск готов, администраторы БД либо берут скрипты выпуска из репозитория и применяют, либо один человек поручено передать правильные сценарии выпуска для администраторов баз данных (чаще всего из моего опыта). Обратите внимание, что база данных здесь, как правило, является экземпляром принятия пользователя, который отражает производственный экземпляр. Если тестирование приложения проходит, код переводится в рабочий режим.

Если вы хотите синхронизировать напрямую между базой данных и вашей IDE, я выбрал один вариант - кодирование команды жаб. Жаба не является бесплатной, и для этой опции потребуются дополнительные объекты, установленные в базе данных (таблицы метаданных / отслеживания и т. Д.). Хороший обзор находится здесь , а хорошая статья по настройке находится здесь .

Командное кодирование очень круто, но я бы установил его только в среде разработки. Как вы продвигаете код оттуда через вашу систему, зависит только от вас.

1 голос
/ 07 июня 2016

Довольно просто автоматизировать описанную вами процедуру с помощью командного файла sqlplus.Выберите из all_source, поместите его в файл.Вызовите команду diff как "host diff ..." или "! Diff ..." в командном файле.Опции -b и -B для diff будут игнорировать пробелы и пустые строки соответственно.

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