Oracle--定时任务

开发者博客www.developsearch.com

 

 

创建一个任务的完整的格式是:

variable jobno number;
begin
sys.dbms_job.submit(job => :jobno,
what => 'pro_test;',
next_date => to_date('21-02-2008 17:37:26', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'sysdate+1/24/12');
commit;
end;
-- 系统会自动分配一个任务号jobno。

 

删除JOB
SQL> begin
2 dbms_job.remove(:job1);
3 end;

 

删除: job:dbms_job.remove(jobno);
修改要执行的操作: job:dbms_job.what(jobno,what);
修改下次执行时间: dbms_job.next_date(job,next_date);
修改间隔时间: dbms_job.interval(job,interval);
停止job: dbms.broken(job,broken,nextdate);
启动job: dbms_job.run(jobno)

 

设置初始化参数job_queue_processes
sql> alter system set job_queue_processes=n;(n>0)
job_queue_processes最大值为1000

 

查看 job queue 后台进程
sql>select name,description from v$bgprocess;

 

跟踪任务的情况(查看任务队列):

 

SQL>  select job,next_date,next_sec,failures,broken from user_jobs;

       JOB NEXT_DATE   NEXT_SEC           FAILURES BROKEN
---------- ----------- ---------------- ---------- ------
         1 2008-2-22 ?01:00:00                  0 N
 

 

 

例:有存储过程 p_dosomethings,需要被不同的时间间隔执行

declare    
	jobno number;    
begin    
	dbms_job.submit(jobno, 
			'p_dosomething;',  --what 
			to_date('20090101020000','yyyy-mm-dd hh24:mi:ss'), -- next_date,可以不填
			'Interval时间字符串' --interval,关键设置
        );    
        commit;    
end; 

 

例:

begin
     dbms_job.change(1688,'PKG_COUNT_COD_PERIOD.COUNT_PERIOD_JOB;',trunc(sysdate+1),'TRUNC(sysdate) +1+1/24');
end;

 



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值