Создание точки сохранения

Функция

Создание промежуточной точки сохранения в текущей локальной транзакции.

Спецификация
   
< создание точки сохранения >::=
Синтаксические правила
  1. < Имя точки сохранения > должно быть уникальным для канала в течение транзакции.

    SET SAVEPOINT "Итоговые суммы";
    SET SAVEPOINT AFTER_SALE;
Пример
1) открываем канал в режиме EXCLUSIVE;
2) выполняем SQL-запросы, которые относятся к транзакции в целом (например, вносим в БД поступление новых заявок на товары);
3) организуем цикл по обработке  заявок на товары. Заявка может быть удовлетворена (если товаров достаточно), или отклонена – в противном случае;
4) в начале обработки каждой заявки устанавливаем контрольную точку:
set savepoint sp1;
5) выполняем SQL-запросы по обработке заявки;
6) по окончании обработки каждой заявки устанавливаем контрольную точку:
set savepoint sp2;
7) если заявка не может быть принята, делаем откат к контрольной точке, выставленной до начала обработки заявки, sp1:
rollback to savepoint sp1;
иначе принимаем заявку к исполнению – делаем commit до контрольной точки, выставленной по окончании обработки заявки, sp2:
commit to savepoint sp2;
8) продолжаем обработку заявок (шаг 4);
9) выполняем общий commit или rollback всей транзакции.