Обработка Неявной транзакции
Автоматическая фиксация происходит при следующих обстоятельствах:
Оператор DDL выполнен
Оператор DCL выполнен
Нормальный выход из SQL Developer или SQL*Plus, без явного выполнения оператора
COMMIT
илиROLLBACK
Автоматический откат происходит, когда имеет место аварийное завершение SQL Developer или SQL*Plus или системный отказ.
Состояние | Обстоятельства |
---|---|
Автоматическая фиксация | Выполнен оператор DDL или оператор DCL, стандартный выход из SQL Developer или SQL*Plus без явного выполнения команды COMMIT или ROLLBACK |
Автоматический откат | Аварийное завершение SQL Developer или SQL*Plus или системный отказ |
Отметьте: В SQL*Plus команда AUTOCOMMIT
может быть переключена в ON
или OFF
. Если она установлена в ON
, каждый отдельный оператор DML фиксируется, как только он выполняется. Невозможно откатывать изменения. Если она установлена в OFF
, оператор COMMIT
может все еще быть выполнен явно. Кроме того, оператор COMMIT
делается, когда выполняется оператор DDL или когда Вы выходите из SQL*Plus. Команда SET AUTOCOMMIT ON/OFF
отсутствует в SQL Developer. DML фиксируется при нормальном выходе из SQL Developer, только если Вы включили предпочтение Autocommit. Чтобы включить Автоматическую фиксацию, выполните следующее:
В меню Tools выберите Preferences. В диалоговом окне Preferences разверните Database и выберите Worksheet Parameters.
В правой панели выберите опцию “Autocommit in SQL Worksheet”. Нажмите OK.
Системные отказы
Когда транзакция прерывается системным отказом, вся транзакция автоматически откатывается. Это препятствует ошибке нежелательных изменений в данных и возвращает таблицы к состоянию во время последней фиксации. Таким образом сервер Oracle защищает целостность таблиц.
В SQL Developer нормальный выход из сеанса выполняется при выборе Exit
из меню File
. В SQL*Plus нормальный выход выполняется при вводе команды EXIT
в подсказке.
Закрытие окна интерпретируется как аварийный выход.