tecnologia | consultoria | banco de dados

Oracle - Scheduler Job

Scheduler job é uma das formas de agendar tarefas para execuções no Oracle, a partir do 11G. Segue abaixo formas de criar, alterar, excluir, etc...

Criar:

BEGIN
DBMS_SCHEDULER.CREATE_JOB
(
JOB_NAME => 'JB_TESTE'
,JOB_TYPE => 'STORED_PROCEDURE'
,JOB_ACTION => 'HR.PRC_TESTE'
,START_DATE => SYSTIMESTAMP
,REPEAT_INTERVAL => 'FREQ=DAILY;BYDAY=MON,TUE,WED,THU,FRI;BYHOUR=8,20;BYMINUTE=0;BYSECOND=0'
,AUTO_DROP => FALSE
,COMMENTS => 'COMENTÁRIO JOB TESTE'
,ENABLED => TRUE
);
END;

Alterar:

BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE
(
NAME => 'JB_TESTE',
ATTRIBUTE => 'REPEAT_INTERVAL',
VALUE => 'FREQ=DAILY; BYHOUR=15; BYMINUTE=30'
);
END;

Excluir:

BEGIN
DBMS_SCHEDULER.DROP_JOB(JOB_NAME => 'HR.JB_TESTE', FORCE => TRUE);
END;

Verificar status:

SELECT owner, programa_name, program_type, enabled, max_runs
FROM dba_scheduler_programs
WHERE owner = 'HR';

Histórico de execuções:

SELECT * FROM ALL_SCHEDULER_JOB_RUN_DETAILS;

Listar scheduler jobs:

SELECT OWNER, JOB_NAME, STATE, LAST_START_DATE
FROM ALL_SCHEDULER_JOBS
WHERE OWNER = 'HR';

Forçar a execução:

BEGIN
DBMS_SCHEDULER.RUN_JOB('HR.JB_TESTE',TRUE);
END;

Forçar interromper execução:

BEGIN
DBMS_SCHEDULER.STOP_JOB
(
JOB_NAME => 'HR.JB_TESTE',
FORCE => TRUE
);
END;

Desabilitar:
BEGIN
DBMS_SCHEDULER.DISABLE(NAME => 'HR.JB_TESTE', FORCE => TRUE);
END;

Habilitar:

BEGIN
DBMS_SCHEDULER.ENABLE(NAME => 'HR.JB_SRK.JB_CTRL_DEPENDENCIAS');
END;

Limpar log de execução maiores que 10 dias:

BEGIN
DBMS_SCHEDULER.PURGE_LOG(LOG_HISTORY => 10, JOB_NAME => 'JB_TESTE');
END;
Data publicação: 21:57 28/08/2015
Perfil
Olá jovem Padawan, seja bem vindo! Este site foi criado com o intuito de compartilhar um pouco de conhecimento de Tecnologia da Informação e Business Intelligence.

Linkedin  Youtube

"Eu não sei como vencer os outros; sei apenas como vencer a mim mesmo." (Yagu Munenori)


Leandro Sacramento, Todos os direitos reservados - 2012 - 2020