Script para criar job no Oracle

 1 - Criando os schedules

 begin

dbms_scheduler.create_schedule (

SCHEDULE_NAME=>
'interval_every_30_minutes',

START_DATE => trunc(sysdate)+15/24, -
Start as 15 horas.

REPEAT_INTERVAL=> 'freq=minutely;
interval=30′,

COMMENTS=> 'Execucao a cada 30 minutos'

);

end;

/

Com as expressões abaixo podemos crier qualquer agendamento.

Frequencia: 

YEARLY

MONTTHLY

WEELY

DAILY

HOURLY

MINUTELY

SECONDLY

Para um melhor detalhamento pode ser usar.

BYMONTH

BYWEEKNO

BYYEARDAY

BYMONTHDAY

BYHOUR

BYMINUTE

BYSECOND

 Bom agora que criamos os schedules vamos criar os Jobs e
associa-los aos seus respectivos agendamentos.

 2 - Criando os jobs

 - Job de free tablespace

/*begin

           
dbms_scheduler.create_job  (

           
job_name => 'TBSPACE_FREE', 

           
schedule_name=>'interval_every_30_minutes', 

           
job_type   => 'EXECUTABLE',

           
JOB_ACTION => 'C:\rotina\TBSPACE_FREE.cmd',

           
enabled=>true, 

           
auto_drop=>false, 

           
comments=>'Espaço livre nas tablespaces'); 

end;

/

- Job de move alert.log

begin

           
dbms_scheduler.create_job  (

           
job_name => 'MOVE_ALERT', 

           
schedule_name=>'interval_every_30_minutes', 

           
job_type   => 'EXECUTABLE',

           
JOB_ACTION => 'C:\rotina\MOVE_ALERT.cmd',

           
enabled=>true, 

           
auto_drop=>false, 

           
comments=>'Valida o status do listener'); 

end;

/

Você pode criar "N" schedules / Jobs de acordo com as suas
necessidades, eu dei apenas dois exemplos básico de utilização.

 Para o gerenciamento do jobs temos várias views, vou citar
algumas:

 DBA_SCHEDULER_JOBS - Gerencia os jobs criados na base.

 DBA_SCHEDULER_JOB_RUN_DETAILS - Detalhes sobre a execução
dos jobs, com informações sobre possíveis erros.

 DBA_SCHEDULER_JOB_LOG - Tabela de  com informação
sobre sucesso ou falha da execução dos jobs.

 DBA_SCHEDULER_SCHEDULES - Visão sobre os schedules criados
na base.