Может компиляция нескольких Oracle Мн пакет / пакет SQL быть атомарной операцией?

Если я развертываю N pl/sql пакеты к Oracle DB, я могу сделать их компиляцию атомарной, т.е. изменения в этих пакетах будут применены после успешной компиляции всех пакетов?

5
задан Alexey Kalmykov 23 April 2010 в 08:35
поделиться

3 ответа

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

3
ответ дан 14 December 2019 в 04:33
поделиться

CREATE OR REPLACE и ALTER PACKAGE - это операторы DDL, и каждый отдельный оператор DDL представляет собой дискретную транзакцию. COMMIT выдается перед и после каждой команды DDL; поэтому отката для DDL нет.

Мне кажется, что у вас проблема с управлением конфигурацией. И управление конфигурацией, плюс контроль версий - способ исправить это. Держите все свои сценарии PL / SQL (черт возьми, только все сценарии) под контролем версий. Когда вы развертываете новую версию некоторых программ PL / SQL, проверьте также и предыдущие версии (в отдельный подкаталог или что-то еще, что имеет смысл в вашем режиме развертывания). Затем, если возникнут какие-либо проблемы с новыми версиями ваших пакетов, можно будет повторно развернуть старые версии.

3
ответ дан 14 December 2019 в 04:33
поделиться

Другие ответы здесь хороши (например, переопределение на основе редакции, которое доступно в 11gR2).

Другой вариант предоставляется PL / SQL Developer , который может быть настроен на выполнение тестовой компиляции (компилирует пакет с альтернативным именем) перед «настоящей» компиляцией.

2
ответ дан 14 December 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: