Полностью поддержан пакет DBMS_JOB
Полностью поддержан пакет DBMS_JOB В Digital Q.DataBase теперь полностью поддерживается DBMS_JOB, классический планировщик заданий Oracle. Регламентные задачи, которые годами работают в Oracle-приложениях (ночные расчёты, закрытие дня, рассылки, очистка данных), переносятся в Q.DataBase без переписывания кода. ► Что поддержано • Все документированные процедуры пакета: SUBMIT, ISUBMIT, RUN, REMOVE, CHANGE, WHAT, NEXT_DATE, INTERVAL, INSTANCE, BROKEN, USER_EXPORT. • Фоновая очередь заданий: задания запускаются по расписанию сами, без участия пользователя. Число фоновых процессов задаётся привычным параметром JOB_QUEUE_PROCESSES. • Повторяющиеся задания с интервалом в виде выражения Oracle, например 'TRUNC(SYSDATE) + 1 + 2/24'. • Поведение как в Oracle: после 16 неудачных запусков подряд задание помечается как сломанное (broken). Процедура RUN запускает задание вручную, даже сломанное. • Представления DBA_JOBS, USER_JOBS и DBA_JOBS_RUNNING для мониторинга заданий. ► Пример использования ```sql DECLARE l_job BINARY_INTEGER; BEGIN DBMS_JOB.SUBMIT( job => l_job, what => 'billing.close_day;', next_date => TRUNC(SYSDATE) + 1 + 2/24, interval => 'TRUNC(SYSDATE) + 1 + 2/24'); COMMIT; END; ``` Задание будет каждую ночь в 02:00 закрывать операционный день, как и в Oracle. Мастер переноса БД переносит задания DBMS_JOB вместе со схемой. На время загрузки данных задания отключены, после загрузки включаются, поэтому регламент не запустится на неполных данных. DBMS_JOB работает вместе с современным планировщиком DBMS_SCHEDULER: в Q.DataBase доступны оба механизма.