Обработка Неявной транзакции

  • Автоматическая фиксация происходит при следующих обстоятельствах:

    • Оператор 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 в подсказке.

Закрытие окна интерпретируется как аварийный выход.

Далее: Ограничение CHECK

Смотрите также
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)