Теория для лабораторной работы №1 - "Изучение команд DDL", страница 19

DELETE FROM emp

WHERE JOB = 'SALESMAN'

        AND COMM < 100

Пример.

Этот пример, используя подзапрос, выполняет действия, аналогичные предыдущему примеру:

DELETE FROM (select * from emp)

      WHERE JOB = 'SALESMAN'

       AND COMM < 100

ROLLBACK

Назначение: отмена работы, выполненной в текущей транзакции.

Требования к использованию: для использования привилегий не требуется.

Синтаксис:

 

WORK

требуется для совместимости со стандартом ANSI.

TO

откат назад к определённой ранее точке сохранения. Если эта клауза опущена, Oracle делает откат на начало транзакции.

FORCE

откат назад  дистрибутивной транзакции с именем ‘text’.

 

ROLLBACK с клаузой FORCE не поддерживается PL/SQL.

Транзакция (или логическая единица работы) – последовательность SQL-операторов, которые Oracle трактует как единое целое. Транзакция начинается после первого выполнения оператора COMMIT, ROLLBACK или присоединения к базе данных. Транзакция заканчивается операторами COMMIT, ROLLBACK или отсоединением от базы данных.

Использование команды ROLLBACK без клаузы SAVEPOINT выполняет:

*  заканчивает транзакцию;

*  отменяет все изменения в текущей транзакции;

*  удаляет все точки сохранения в данной транзакции;

*  освобождает все блокировки данной транзакции;

Использование команды ROLLBACK с клаузой SAVEPOINT выполняет:

*  частичный откат транзакции к точке сохранения;

*  сохраняет информацию о точке сохранения, к которой был произведен откат, но стирает все последующие точки сохранения;