




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PL/SQL DEVELOPER ORACLE创建定时调度job Oracle创建oracle调度job 右键“new”弹出 Submitter这里不用修改 Job这里不用填 What: pw_sbtz_gisdata_procedure; 请注意后面的“;”,一定不能少 Next date:sysdate Interval: TRUNC(next_day(sysdate,星期一)+1/24 后面的不用填写,只需要填写上面三个,填写完成后点击“Apply”就可以了 1、代表每个星期一凌晨一点 TRUNC(next_day(sysdate,星期一)+1/24 2、每天午夜12点 TRUNC(SYSDATE + 1) 3、每天早上8点30分 TRUNC(SYSDATE + 1) + (8*60+30)/(24*60) 4、每星期二中午12点 NEXT_DAY(TRUNC(SYSDATE ), TUESDAY ) + 12/24 5、每个月第一天的午夜12点 TRUNC(LAST_DAY(SYSDATE ) + 1) 6、每个季度最后一天的晚上11点 TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), Q ) -1/24 7、每星期六和日早上6点10分 TRUNC(LEAST(NEXT_DAY(SYSDATE, SATURDAY), NEXT_DAY(SYSDATE, SUNDAY) + (660+10)/(2460) 8、每分钟执行 Interval = TRUNC(sysdate,mi) + 1/ (24*60) 或 Interval = sysdate+1/1440 9、每天定时执行 例如:每天的凌晨1点执行 Interval = TRUNC(sysdate) + 1 +1/ (24) 10、每周定时执行 例如:每周一凌晨1点执行 Interval = TRUNC(next_day(sysdate,星期一)+1/24 11、每月定时执行 例如:每月1日凌晨1点执行 Interval =TRUNC(LAST_DAY(SYSDATE)+1+1/24 12、每季度定时执行 例如每季度的第一天凌晨1点执行 Interval = TRUNC(ADD_MONTHS(SYSDATE,3),Q) + 1/24 13、每半年定时执行 例如:每年7月1日和1月1日凌晨1点 Interval = ADD_MONTHS(trunc(sysdate,yyyy),6)+1/24 14、每年定时执行 例如:每年1月1日凌晨1点执行 Interval =ADD_MONTHS(trunc(sysdate,yyyy),12)+1/24 常要oracle数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能优化,包括重建索引等等的工作,这时需要用到一个函数dbms_job.submit,来完成Oracle定时器Job时间的处理上。使用dbms_job.submit这个函数,我们只需要考虑两个事情:安排某一任务,和定制一个执行任务的时间点。但最重要也是最棘手的事情,我认为还是确定一个执行任务的时间点。时间点确定了,其他的事情就好办了。下面是函数dbms_job.submit使用方法: Java代码 1. dbms_job.submit(joboutbinary_integer, 2. whatinarchar2, 3. next_dateindate, 4. intervalinvarchar2, 5. no_parseinboolean)dbms_job.submit( job out binary_integer,whatinarchar2,next_date indate,intervalinvarchar2,no_parseinboolean)其中: job:输出变量,是此任务在任务队列中的编号; what:执行的任务的名称及其输入参数; next_date:任务执行的时间; interval:任务执行的时间间隔。 其中Interval这个值是决定Job何时,被重新执行的关键;当interval设置为null时,该job执行结束后,就被从队列中删除。假如我们需要该job周期性地执行,则要用sysdatem表示。如何更好地确定执行时间的间隔需要我们掌握一个函数TRUNC。 1.TRUNC(for dates) TRUNC函数为指定元素而截去的日期值。 其具体的语法格式如下: TRUNC(date,fmt) 其中: date 一个日期值 fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去 下面是该函数的使用情况: 1)按年截尾 select TRUNC(TO_DATE(2008-03-01 08:23,yyyy-mm-dd hh:mi),yyyy) from dual - 2008-1-1 2)按月截尾 select TRUNC(TO_DATE(2008-03-01 08:23,yyyy-mm-dd hh:mi),mm) from dual - 2008-3-1 3)按日截尾 select TRUNC(TO_DATE(2008-03-01 08:23,yyyy-mm-dd hh:mi),dd) from dual - 2008-3-1 4)按时截尾 select TRUNC(TO_DATE(2008-03-01 08:23,yyyy-mm-dd hh:mi),hh) from dual - 2008-3-1 8:00:00 5)按分截尾 select TRUNC(TO_DATE(2008-03-01 08:23,yyyy-mm-dd hh:mi),mi) from dual - 2008-3-1 8:23:00 2.确定执行时间间隔 1)、 每分钟执行 Interval = TRUNC(sysdate,mi) + 1 / (24*60) 2)、 每天定时执行 例如:每天的凌晨2点执行 Interval = TRUNC(sysdate) + 1 +2 / (24) 3)、 每周定时执行 例如:每周一凌晨2点执行 Interval = TRUNC(next_day(sysdate,2)+2/24 -星期一,一周的第二天 4)、 每月定时执行 例如:每月1日凌晨2点执行 Interval =TRUNC(LAST_DAY(SYSDATE)+1+2/24 5)、 每季度定时执行 例如每季度的第一天凌晨2点执行 Interval = TRUNC(ADD_MONTHS(SYSDATE,3),Q) + 2/24 6)、 每半年定时执行 例如:每年7月1日和1月1日凌晨2点 Interval = ADD_MONTHS(trunc(sysdate,yyyy),6)+2/24 7)、 每年定时执行 例如:每年1月1日凌晨2点执行 Interval =ADD_MONTHS(trunc(sysdate,yyyy),12)+2/24 3.实例 这里提供了一个简单的例子,主要是完成在每一个时间间隔内向一个表中插入一条记录 1)创建测试表 Java代码 1. 2. SQLcreatetabletest(idnumber,cur_timedate); 3. 表已创建。 4. -建sequence 5. CREATESEQUENCEtest_sequence 6. INCREMENTBY1-每次加几个 7. STARTWITH1-从1开始计数 8. NOMAXVALUE-不设置最大值 9. NOCYCLE-一直累加,不循环 10. CACHE10; SQL create table test(id number,cur_time date); 表已创建。-建sequenceCREATE SEQUENCE test_sequenceINCREMENT BY 1 - 每次加几个 START WITH 1 - 从1开始计数 NOMAXVALUE - 不设置最大值 NOCYCLE - 一直累加,不循环 CACHE 10 ;-建触发器代码为: Java代码 1. createorreplacetriggertri_test_id 2. beforeinsertontest-test是表名 3. foreachrow 4. declare 5. nextidnumber; 6. begin 7. IF:new.idISNULLor:new.id=0THEN-id是列名 8. selecttest_sequence.nextval-SEQ_ID正是刚才创建的 9. intonextid 10. fromsys.dual; 11. :new.id:=nextid; 12. endif; 13. endtri_test_id; 14. create or replace trigger tri_test_id before insert on test -test 是表名 for each rowdeclare nextid number;begin IF :new.id IS NULLor :new.id=0 THEN -id是列名 select test_sequence.nextval -SEQ_ID正是刚才创建的 into nextid from sys.dual; :new.id:=nextid; end if;end tri_test_id; 2)创建一个自定义过程 Java代码 1. 2. SQLcreateorreplaceprocedureproc_testas 3. 2begin 4. 3insertintotest(cur_time)values(sysdate); 5. 4end; 6. 5/ 7. SQL create or replace procedure proc_test as 2 begin 3 insert into test(cur_time) values(sysdate); 4 end; 5 / 过程已创建。 3)创建JOB Java代码 1. SQLdeclarejob1number; 2. begin 3. dbms_job.submit(job1,proc_test;,sysdate,sysdate+1/1440);-每天1440分钟,即一分钟运行test过程一次 4. end; SQL declare job1 number; begin dbms_job.submit(job1,proc_test;,sysdate,sysdate+1/1440);-每天1440分钟,即一分钟运行test过程一次 end; PL/SQL JOB已成功完成。plsql中学习job-学习job-建表create table test_job(para_date date);commit;insert into test_job values(sysdate);commit;select * from test_job;-建立存贮过程create or replace procedure test_jobproce asbegin insert into test_job values(sysdate);end test_jobproce;-建立job-建立job后默认是执行的declare test_job_really number;begindbms_job.submit(test_job_really,test_jobproce;,sysdate,sysdate+1/1440);commit;end;-停止job 25是建立的job test_job_reallybegindbms_job.broken(25,true);commit;end;-启动jobbegindbms_job.run(25);commit;end;-删除jobbegin dbms_job.remove(25); commit;end;-查看执行结果select * from test_job order by test_job.para_date desc;-查看jobselect * from sys.user_jobs -使用下面的SQL查询是否JOB还在Running,前提是需要job执行时间不能过短select * from dba_jobs_running除了submit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初三质量分析会班主任发言
- 电话销售礼仪培训
- 时政播报课件
- 2025版锅炉改造工程设计与施工合同
- 二零二五年瓷砖产品进出口贸易合同
- 2025版电商数据分析与营销托管合同范本
- 二零二五版家庭心理咨询与辅导服务合同书
- 2025版股权投资与资产管理合作协议书
- 二零二五版跨境贸易实务:磋商与订立合同操作指南及案例解析
- 2025版智能家电研发与市场推广合作合同
- 电子显微学解析钙钛矿型功能氧化物界面:结构、缺陷与性能关联
- 走流水款协议书
- 2025景观园林设计合同
- 国际压力性损伤-溃疡预防和治疗临床指南(2025年版)解读课件
- 城管协管笔试题及答案
- 种植土外购合同协议
- 带状疱疹后遗神经痛护理课件
- 2025-2030中国异噻唑啉酮中间体行业市场发展趋势与前景展望战略研究报告
- 2025-2030年中国异噻唑啉酮衍生物项目投资可行性研究分析报告
- 乡村青年新主播直播实训营招募
- ZYJ电液转辙机检修测试信号基础设备课件
评论
0/150
提交评论