ERASE_WRITE_OPERATION
Содержание раздела
Поддерживается в версиях: 6.12 / 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);