Inicialize os parâmetros relacionados job_queue_processes
alter system set job_queue_processes=39 scope=spfile; //O valor máximo não pode exceder 1000 //Agendando a frequência de atualização do job em segundos;
job_queue_process representa o número de jobs que o Oracle pode executar simultaneamente, que podem ser passados pela instrução
mostrar parâmetro job_queue_process;
Para visualizar o valor de job_queue_process no oracle. Quando o valor job_queue_process é 0, significa interromper todos os trabalhos Oracle. Você pode passar a instrução.
ALTER SYSTEM SET job_queue_processes = 10;
Para ajustar o trabalho que inicia o Oracle.
Visualizações relacionadas:
dba_jobs
todos_empregos
user_jobs
dba_jobs_running contém informações sobre trabalhos em execução
------------------------
Enviar sintaxe de trabalho:
começar
sys.dbms_job.submit(trabalho => :trabalho,
o que => 'P_CLEAR_PACKBAL;',
próxima_data => até_data('04-08-2008 05:44:09', 'dd-mm-aaaa hh24:mi:ss'),
intervalo => 'sysdate+ 1/360');
comprometer-se;
fim;
/
------------------------
Criar TRABALHO
número variável do jobno;
começar
dbms_job.submit(:jobno, 'P_CRED_PLAN;',SYSDATE,'SYSDATE+1/2880',TRUE);
comprometer-se;
Executar TRABALHO
SQL> começar
dbms_job.run(:job1);
fim;
/
Excluir TRABALHO
SQL> começar
dbms_job.remove(:job1);
fim;
/
DBA_JOBS
======================================== ==
Campo (coluna) Tipo Descrição
NÚMERO DO TRABALHO O número de identificação exclusivo da tarefa
LOG_USER VARCHAR2(30) O usuário que enviou a tarefa
PRIV_USER VARCHAR2(30) Permissões de tarefa atribuídas ao usuário
SCHEMA_USER VARCHAR2(30) Modo de usuário para análise de tarefas
LAST_DATE DATE A última vez que a tarefa foi executada com sucesso
LAST_SEC VARCHAR2(8) Horas, minutos e segundos da data last_date no formato HH24:MM:SS
THIS_DATE DATE A hora de início da tarefa em execução ou nulo se nenhuma tarefa estiver em execução
THIS_SEC VARCHAR2(8) Horas, minutos e segundos da data this_date no formato HH24:MM:SS
NEXT_DATE DATE A próxima vez que a tarefa agendada será executada
NEXT_SEC VARCHAR2(8) Horas, minutos e segundos da data next_date no formato HH24:MM:SS
TOTAL_TIME NUMBER O tempo total necessário para a execução da tarefa, em segundos
Parâmetro de sinalização BROKEN VARCHAR2(1), Y indica que a tarefa foi interrompida e não será executada no futuro.
INTERVAL VARCHAR2(200) Expressão usada para calcular o próximo tempo de execução
NÚMERO DE FALHAS O número de vezes que a tarefa foi executada sem sucesso.
WHAT VARCHAR2(2000) Bloco PL/SQL que executa a tarefa
CURRENT_SESSION_LABEL RAW MLSLABEL A chave de sessão Oracle confiável para esta tarefa
CLEARANCE_HI RAW MLSLABEL O intervalo máximo do Oracle em que a tarefa pode confiar
CLEARANCE_LO RAW MLSLABEL A lacuna mínima do Oracle em que a tarefa pode confiar
NLS_ENV VARCHAR2(2000) Configurações de sessão NLS para execução de tarefas
MISC_ENV RAW(32) Alguns outros parâmetros de sessão para execução de tarefas
-------------------------
Descrição Valor do parâmetro INTERVAL
'TRUNC(SYSDATE + 1)' todos os dias à meia-noite
Todas as manhãs às 8h30 'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'
Toda terça-feira às 12h 'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'
'TRUNC(LAST_DAY(SYSDATE ) + 1)' à meia-noite do primeiro dia de cada mês
23h do último dia de cada trimestre 'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24'
Todos os sábados e domingos às 6h10 'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'
-------------------------
1: Execute a cada minuto
Intervalo => TRUNC(sysdate,'mi') + 1/ (24*60)
2: Execute regularmente todos os dias
Por exemplo: executado à 1h todos os dias
Intervalo => TRUNC(sysdate) + 1 +1/ (24)
3: Execução programada toda semana
Por exemplo: executado todas as segundas-feiras à 1h
Intervalo => TRUNC(next_day(sysdate,'Segunda-feira'))+1/24
4: Execução regular todos os meses
Por exemplo: Executar à 1h do dia 1º de cada mês
Intervalo =>TRUNC(LAST_DAY(SYSDATE))+1+1/24
5: Execução regular trimestralmente
Por exemplo, é executado à 1h do primeiro dia de cada trimestre.
Intervalo => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24
6: Execução regular semestralmente
Por exemplo: todo dia 1º de julho e 1º de janeiro à 1h.
Intervalo => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24
7: Executado regularmente todos os anos
Por exemplo: Executado à 1h do dia 1º de janeiro de cada ano
Intervalo =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24
Este artigo vem do blog CSDN. Indique a fonte ao reimprimir: http://blog.csdn.net/mzwang123/archive/2009/12/22/5053476.aspx.
-