В базе данных Oracle сеанс задания относится к единице работы, выполняемой заданием. Задания — это запланированные задачи, которые можно выполнять через определенные промежутки времени или в назначенное время. Сеансы заданий Oracle предоставляют мощную функцию для автоматизации повторяющихся задач в среде базы данных. В этой статье мы рассмотрим различные методы работы с сеансами заданий Oracle, а также приведем примеры кода, иллюстрирующие их использование.
- Создание задания.
Чтобы создать сеанс задания в Oracle, вы можете использовать процедуруDBMS_SCHEDULER.CREATE_JOB. Вот пример создания задания, которое запускает блок PL/SQL каждую ночь в 2:00 ночи:
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'MY_JOB',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN MY_PROCEDURE; END;',
start_date => SYSTIMESTAMP,
repeat_interval => 'FREQ=DAILY; BYHOUR=2;',
enabled => TRUE);
END;
/
-
Управление сеансами заданий.
После создания задания вы можете управлять его сеансами различными методами. Некоторые из часто используемых методов включают в себя:а. Включение или отключение задания:
BEGIN DBMS_SCHEDULER.ENABLE('MY_JOB'); END; /б. Остановка выполняемого задания:
BEGIN DBMS_SCHEDULER.STOP_JOB('MY_JOB'); END; /в. Изменение атрибутов задания:
BEGIN DBMS_SCHEDULER.SET_ATTRIBUTE('MY_JOB', 'repeat_interval', 'FREQ=DAILY; BYHOUR=3;'); END; / -
Получение информации о сеансе задания.
Чтобы получить информацию о сеансах задания, вы можете запросить представлениеDBA_SCHEDULER_JOB_RUN_DETAILS. Вот пример, который извлекает время начала и продолжительность последних пяти выполнений задания:
SELECT *
FROM (
SELECT start_time, run_duration
FROM DBA_SCHEDULER_JOB_RUN_DETAILS
WHERE job_name = 'MY_JOB'
ORDER BY log_date DESC
) WHERE ROWNUM <= 5;
- Удаление задания:
Чтобы удалить задание и связанные с ним сеансы, вы можете использовать процедуруDBMS_SCHEDULER.DROP_JOB:BEGIN DBMS_SCHEDULER.DROP_JOB('MY_JOB'); END; /
Сессии заданий Oracle предлагают удобный способ автоматизации задач в среде базы данных Oracle. В этой статье мы рассмотрели различные методы создания, управления и получения информации о сеансах заданий. Эффективно используя эти возможности, вы можете повысить эффективность и производительность операций с базой данных.