Автономные транзакции позволяют вам создать “транзакцию внутри транзакции”, которая зафиксирует или выполнит откат изменений, независимо от родительской транзакции. Они позволяют вам приостановить текущую выполняемую транзакцию, запустить новую, проделать некоторую работу и зафиксировать или откатить ее — все это не затрагивая состояния текущей выполняемой транзакции. Автономные транзакции предоставляют новый метод управления транзакциями в PL/SQL и могут быть использованы в следующих конструкциях.
- Анонимные блоки верхнего уровня.
- Локальные (процедура в процедуре), автономные или пакетные функции и процедуры.
- Методы объектных типов.
- Триггеры баз данных.
Прежде чем мы рассмотрим работу автономных транзакций, я хотел бы подчеркнуть, что это — весьма мощный, а потому опасный инструмент, если применять его неправильно. Реальная потребность в автономных транзакциях возникает очень редко. Я с подозрением отношусь к любому коду, который использует их — к такому коду следует внимательно присмотреться. Слишком легко непреднамеренно нарушить логическую целостность данных в системе с автономными транзакциями. В следующем разделе мы обсудим, когда они могут безопасно применяться, после того, как посмотрим, как они работают.
< Предыдущая | Следующая > |
---|