oracle创建job并执行job

1、首先job要在command命令下执行才有效
DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job => X
,what => 'test;'
,next_date => to_date('05-02-2016 11:40:00', 'dd-mm-yyyy hh24:mi:ss')
,interval => 'sysdate+1/24'
,no_parse => TRUE
);
SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
COMMIT;
END;
/

2、job创建之后,看情况需不需要立即执行job,如果next_date在当前日期之后,如果执行run的话立即会执行一次,否则是到指定的时间执行;如果你设置的next_date的时间在当前日期之前那么当时run和不run都会在系统当前的时间执行一次。

begin
dbms_job.run(job的id);
end;
/

记得commit;

job 的id可以通过select * from user_jobs;进行查询

3、如果发现job到点没有执行,那么

 
  
show parameter job_queue_processes ;
看下
job_queue_processes的值,如果为0 那么要将值改为大于零的数,
 
  
alter system set job_queue_processes=1;
即可.
4、查看job运行情况
 
  
select * from user_jobs;
select * from dba_jobs_running;
select * from dba_jobs;


你可能感兴趣的:(数据库,oracle)