首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

Oracle-定时任务

2013-12-02 
Oracle--定时任务创建一个任务的完整的格式是:variable jobno numberbeginsys.dbms_job.submit(job :j

Oracle--定时任务

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

variable jobno number;beginsys.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;

?


Oracle-定时任务
?

热点排行