ERASE_WRITE_OPERATION

Содержание раздела
  1. Действия перед запросом
  2. Синтаксис
  3. Варианты ответа
  4. Ограничения
  5. Примеры

Поддерживается в версиях:  6.11 / 6.10 / 6.9 / 6.8 / 6.7 / 6.6 / 6.5 / 6.4 / 6.3 / 6.2 / 6.1 / 6.0 / 5.8 / 5.7 / 5.6 / 5.5.

Запрос отменяет незавершенную операцию записи. Можно отменить операцию любого вида:

Операцию можно отменить, только если целевые СУБД и их коннекторы, участвовавшие в операции, доступны.

Действия перед запросом

Перед выполнением запроса для операции обновления данных убедитесь, что операция перестала исполняться в СУБД, например прервалась или завершилась.

Обработку операции записи, продолжающей исполняться в СУБД, можно перезапустить, повторив запрос обновления данных с добавленным ключевым словом RETRY.

Синтаксис

ERASE_WRITE_OPERATION(sys_cn[, db_name][, force])

Параметры:

sys_cn

Номер операции записи. Номера незавершенных операций можно узнать с помощью запроса GET_WRITE_OPERATIONS.

db_name

Имя логической базы данных, в которой отменяется операция. Опционально, если выбрана логическая БД, используемая по умолчанию.

force

Флаг, определяющий режим отмены операции загрузки. Возможные значения:

  • false (по умолчанию) — отмена операции загрузки в обычном режиме. В этом режиме запрос не гарантирует отмену операции за заданное* время. Используйте этот режим по умолчанию и, если запрос вернул ошибку тайм-аута отмены операции, повторите запрос.
  • true — отмена операции загрузки в принудительном режиме без гарантий ее остановки. Используйте этот режим, если операцию загрузки не удалось отменить в обычном режиме и она перестала исполняться в СУБД (например, прервалась или завершилась).

* Время ожидания отмены операции определяется параметром конфигурации DELTA_ROLLBACK_OPERATIONS_TIMEOUT_MS. По умолчанию время ожидания — 29 секунд.

Варианты ответа

В ответе возвращается:

  • пустой объект ResultSet при успешном выполнении запроса;
  • исключение при неуспешном выполнении запроса.

Ограничения

  • Отмена всех изменений по операции, продолжающей исполняться в СУБД на момент запуска запроса, не гарантируется:
    • если отменяется операция обновления данных;
    • если отменяется операция загрузки данных и запрос содержит флаг force со значением true.
  • При обработке запроса все неактивные датасорсы пропускаются без возврата ошибки. Ошибка возвращается, если не осталось ни одного активного датасорса, подходящего для исполнения запроса.

Примеры

Отмена операции в указанной логической БД

-- без флага принудительной отмены
ERASE_WRITE_OPERATION(10, marketing);

-- с флагом принудительной отмены
ERASE_WRITE_OPERATION(10, marketing, true);

Отмена операции в логической БД, выбранной по умолчанию:

-- выбор логической базы данных marketing в качестве базы данных по умолчанию
USE marketing;

-- отмена операции в логической БД marketing
ERASE_WRITE_OPERATION(10);