目前Oracle数据库设置定时任务job调度一般有两种方式,分别是dbms_scheduler创建job调度和dbms_job创建job调度。dbms_scheduler创建job调度是在10g以后才有的,甲骨文公司为了用来替换dbms_job而提供了更强大的功能与更灵活的机制/管理。下面介绍这两种方式。
1) dbms_scheduler.run(jobName) 运行job
2) dbms_scheduler.stop_job(jobName,force) 停止job,force默认为false,Oracle建议false停止失败情况下,使用true,且使用true需要有manage scheduler权限
3) dbms_scheduler.drop_job(jobName) 删除job
4) dbms_scheduler.enable(jobName) 打开job
5) dbms_scheduler.disable(jobName,force) 禁用job,force参数用于dependencies,如果TRUE,即使其他对象依赖于它,操作也能成功
创建存储过程:
创建job方式一:执行SQL语句
创建job方式二:PL/SQL界面操作,如下图所示
常用过程:
删除job: dbms_job.remove(jobno);修改要执行的操作: job:dbms_job.what(jobno, what);修改下次执行时间:dbms_job.next_date(jobno, next_date);修改间隔时间:dbms_job.interval(jobno, interval);启动job: dbms_job.run(jobno);停止job: dbms.broken(jobno, broken, nextdate);–-broken为boolean值。查询数据库中job列表: