Что такое эффект размещения фиксации в программе?
Oracle Documentation описывает COMMIT
как:
Цель
Используйте COMMIT
заявление, чтобы закончить текущую операцию и сделать постоянными все изменения, выполненные в транзакции.Транзакция представляет собой последовательность SQL-запросов, которые Oracle Database обрабатывает как единое целое . Это заявление также удаляет все точки сохранения в транзакции, а освобождает транзакционные блокировки.
Если у вас есть три PROCEDURE
и каждый из них содержит COMMIT
заявления, то вы не можете запустить все три, то, если исключение происходит в последней одном, ROLLBACK
их всех, как изменяется от первых двух уже будут COMMIT
Ted ,
Как правило, вы должны не использование COMMIT
в PROCEDURE
или FUNCTION
, но должны оставить его до вызывающей COMMIT
транзакцию таким образом, они могут объединять несколько действий вместе.
Есть, конечно, случаи, когда вы захотите нарушить это правило, но вы должны рассмотреть каждый случай отдельно и занять время, чтобы полностью понять свою бизнес-логику, прежде чем нарушить это правило, чтобы вы знали, что такое COMMIT
ted in each пример.
Должен ли я заключить сделку как AUTONOMOUS_TRANSACTION
?
Один потребительная случай регистрации - вы можете иметь PROCEDURE
, который вызывает другую PROCEDURE
для входа действия пользователя и, независимо от того, удастся ли начальное действие или терпит неудачу вы хотите сохранить журнал действий и обеспечения того, чтобы log is COMMIT
ted. В этом случае запись PROCEDURE
должна быть AUTONOMOUS_TRANSACTION
и содержать оператор COMMIT
, и оператор вызова должен (возможно) не иметь ни того, ни другого.
Таким образом, если COMMIT
одного PROCEDURE
всегда требуется и не зависит от то ли вызывающий COMMIT
сек другие данные делают PROCEDURE
в AUTONOMOUS_TRANSACTION
. Если PROCEDURE
s могут быть объединены вместе, а затем ROLLBACK
в качестве группы, то вы не хотите делать их AUTONOMOUS_TRANSACTION
s.
Это ответ только для ссылок. Было бы лучше включить в ответ соответствующие пункты из связанной статьи. – MT0
Кроме того, автономные транзакции легко использовать неправильно. Вы не должны рекомендовать людям использовать их, если не знаете, что у них есть соответствующий сценарий. Здесь дело не в этом. – APC