oracle定时执行计划任务

oracle定时执行计划任务

ID:5996458

大小:451.31 KB

页数:8页

时间:2017-12-30

oracle定时执行计划任务_第1页
oracle定时执行计划任务_第2页
oracle定时执行计划任务_第3页
oracle定时执行计划任务_第4页
oracle定时执行计划任务_第5页
资源描述:

《oracle定时执行计划任务》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Oracle定时执行计划任务Oracle在10g版本以前,计划任务用的是DBMS_JOB包,10g版本引入DBMS_SCHEDULER来替代先前的DBMS_JOB,在功能方面,它比DBMS_JOB提供了更强大的功能和更灵活的机制管理,但DBMS_JOB包的使用相对比较简单,也基本能够满足定时执行计划任务的需求,故接下来就先看看DBMS_JOB包的使用方法。1.DBMS_JOB我们可以在命令窗口输入showparameterjob_queue_processes查看数据库中定时任务的最多并发数,一般设置为10(设置方法:altersystemsetjob_q

2、ueue_processes=10),如果设为0,那么数据库定时作业是不会运行的。oracle定时执行jobqueue的后台进程是SNP,要启动snp,首先看系统模式是否支持sql>altersystemenablerestrictedsession;或sql>altersystemdisenablerestrictedsession;利用上面的命令更改系统的会话方式为disenablerestricted,为snp的启动创建条件.接下来我们尝试实现以下功能:每隔一分钟自动向job_test表中插入当前的系统时间。1、创测试表createtablejob_

3、test(updatetimedate);2、创建JOBvariablev_job_nonumber;begindbms_job.submit(:v_job_no,'insertintojob_testvalues(sysdate);',sysdate,'sysdate+1/1440');end;/其中最后一个参数'sysdate+1/1440'表示时间间隔为每分钟。其它常用的时间间隔的设置如下:(1)如果想每天凌晨1点执行,则此参数可设置为'trunc(sysdate)+25/24';(2)如果想每周一凌晨1点执行,则此参数可设置为'trunc(next

4、_day(sysdate,1))+25/24';(3)如果想每月1号凌晨1点执行,则此参数可设置为'trunc(last_day(sysdate))+25/24';(4)如果想每季度执行一次,则此参数可设置为'trunc(add_months(sysdate,3),'Q')+1/24';(5)如果想每半年执行一次,则此参数可设置为'add_months(trunc(sysdate,'yyyy'),6)+1/24';(6)如果想每年执行一次,则此参数可设置为'add_months(trunc(sysdate,'yyyy'),12)+1/24'。select*

5、fromuser_jobs;--查看当前用户的调度任务select*fromdba_jobs_running;--查看正在执行的调度任务select*fromdba_jobs;--查看执行完的调度任务select*fromall_jobs;--查看数据库系统所有任务实例1:1.创建测试表createtablea(adate);2.创建一个存储过程createorreplaceproceduretestasbegininsertintoavalues(sysdate);end;/3.创建JOB(任务计划)variablejob1number;begindbm

6、s_job.submit(:job1,'test;',sysdate,'sysdate+1/1440');end;/--每天1440分钟,即一分钟运行test存储过程一次4.运行JOBbegindbms_job.run(:job1);end;/5.查看执行结果selectto_char(a,'yyyy/mm/ddhh24:mi:ss')时间froma;6.删除JOBbegindbms_job.remove(:job1);end;/job的使用说明:DBMS_JOB.SUBMIT(:jobno,//job号'your_procedure;',//要执行的过程

7、trunc(sysdate)+1/24,//下次执行时间'trunc(sysdate)+1/24+1'//每次间隔时间);删除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);例子:VA

8、RIABLEjobnonumber;beginDBMS_JOB.S

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。