В этом учебном материале вы узнаете, как использовать в Oracle оператор ROLLBACKс синтаксисом и примерами.
Описание
В Oracle оператор ROLLBACK используется для отмены работы, выполняемой текущей транзакцией или транзакции, которая сомнительна.
Синтаксис
Параметры или аргументы
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 пример будет выполняться так же, как следующий:
В этом примере ключевое слово WORK означает, что первые 2 ROLLBACK утверждения эквивалентны. Эти примеры откатывают текущую транзакцию.
Savepoint
Рассмотрим пример ROLLBACK, который показывает, как использовать откат к определенной savepoint (точке сохранения).
Например, вы можете написать ROLLBACK c savepoint двумя способами:
или
Поскольку ключевое слово WORK всегда подразумевается, оба примера ROLLBACK откатят текущую транзакцию до savepoint называемой savepoint1.
Force
И наконец, рассмотрим пример ROLLBACK, который показывает, как принудительно откатить сомнительную транзакцию.
Например, вы можете написать ROLLBACK для сомнительных транзакций двумя способами:
или
Поскольку ключевое слово WORK всегда подразумевается, оба из этих примеров ROLLBACK принудят к откату поврежденной или сомнительной транзакции, идентифицированной - ID транзакции '23 .15.68 '.