ROLLBACK ОПЕРАТОР

В этом учебном материале вы узнаете, как использовать в Oracle оператор ROLLBACKс синтаксисом и примерами.

Описание

В Oracle оператор ROLLBACK используется для отмены работы, выполняемой текущей транзакцией или транзакции, которая сомнительна.

Синтаксис

ROLLBACK [ WORK ] [ TO [SAVEPOINT] savepoint_name | FORCE 'string' ];

Параметры или аргументы

WORK
Необязательный. Он был добавлен в Oracle, чтобы быть SQL-совместимым. Выдача ROLLBACK с или без параметра WORK приведет к такому же результату.

TO SAVEPOINT savepoint_name
Необязательный. Оператор ROLLBACK отменяет все изменения для текущей сессии до точки сохранения указанного savepoint_name. Если этот пункт опущен, то все изменения отменяются.

FORCE 'string'
Необязательный. Он используется, чтобы принудительно откатить транзакцию, которая может быть сомнительна или повреждена. С помощью этого параметра вы указываете ID (идентификатор) транзакции в одинарные кавычки, как строку. Вы можете найти ID (идентификатор) транзакции в представлении системы под названием DBA_2PC_PENDING.

Примечание

  • Вы должны иметь DBA привилегии для доступа к системным представлениям - DBA_2PC_PENDING и V$CORRUPT_XID_LIST.
  • Вы не можете откатить к точке сохранения сомнительную транзакцию.

Пример

Рассмотрим на примере, который показывает, как оформить откат в Oracle с помощью оператора ROLLBACK.

ROLLBACK;

Этот ROLLBACK пример будет выполняться так же, как следующий:

ROLLBACK WORK;

В этом примере ключевое слово WORK означает, что первые 2 ROLLBACK утверждения эквивалентны. Эти примеры откатывают текущую транзакцию.

Savepoint

Рассмотрим пример ROLLBACK, который показывает, как использовать откат к определенной savepoint (точке сохранения).
Например, вы можете написать ROLLBACK c savepoint двумя способами:

ROLLBACK TO SAVEPOINT savepoint1;

или

ROLLBACK WORK TO SAVEPOINT savepoint1;

Поскольку ключевое слово WORK всегда подразумевается, оба примера ROLLBACK откатят текущую транзакцию до savepoint называемой savepoint1.

Force

И наконец, рассмотрим пример ROLLBACK, который показывает, как принудительно откатить сомнительную транзакцию.
Например, вы можете написать ROLLBACK для сомнительных транзакций двумя способами:

ROLLBACK FORCE '23.15.68’;

или

ROLLBACK WORK FORCE '23.15.68’;

Поскольку ключевое слово WORK всегда подразумевается, оба из этих примеров ROLLBACK принудят к откату поврежденной или сомнительной транзакции, идентифицированной - ID транзакции '23 .15.68 '.