job 创建-删除-定时
来源:互联网 发布:判断字符串像素长度js 编辑:程序博客网 时间:2024/03/29 06:23
通常job的存在就是为了能够定时跑存储过程,存储过程是为了往数据库里面插入数据。执行某些操作。
创建一个job
variable job_HNKYALL_AIRPORT_RANK_Y number; begin sys.dbms_job.submit(job => :job_HNKYALL_AIRPORT_RANK_Y, what =>'HNKYALL_AIRPORT_RANK_Y;', next_date =>trunc(ADD_MONTHS(SYSDATE,12),'yyyy')+1, interval =>'ADD_MONTHS(trunc(sysdate,''yyyy''),12)+12/24' ); commit; end;
其中job_HNKYALL_AIRPORT_RANK_Y 自定义命名。
what =>'HNKYALL_AIRPORT_RANK_Y;' 这个是要执行的存储过程,记得单引号和分号。 这里的存储过程需要先进行创建。
next_date =>trunc(ADD_MONTHS(SYSDATE,12),'yyyy')+1, 下次执行的时间。2016/1/2
interval =>interval =>'ADD_MONTHS(trunc(sysdate,''yyyy''),12)+12/24'(切记其中 yyyy的引号 是单引号连续输两次,而非双引号。是单引号的转义)循环执行的周期,这个是要加引号的。
select '''' from dual; -- 这是1个单引号select '''''' from dual; -- 这是2个单引号
这个程序在命令窗口 执行,直接打开 pl/sql command Window 复制粘贴。 程序末尾 输入 / 来执行该程序。
查询job
SELECT * from user_jobs
--正在运行的job 这个需要在dba权限下查看。 select * from dba_jobs_running;
首次运行
begin dbms_job.run(id); end;这里的id 指的 查出的job号
删除时需要先查看到该job 的job_number
删除job
begin dbms_job.remove (id);end;
如果已运行的job,需要先停止job再进行删除。
EXEC DBMS_JOB.BROKEN(id,TRUE)
如果发现 job虽然被删除了但是仍然在运行 只能去干掉session
比如 sid=183 job=81 的结果查询 select sid,serial# from v$session where sid=183183 ,3643查询到结果通过 alter system kill session "183,3643"
重要的就是job 的周期运行:
描述 INTERVAL参数值
每天午夜12点 TRUNC(SYSDATE + 1)
每天早上8点30分 TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)
每星期二中午12点 NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24
每个月第一天的午夜12点 TRUNC(LAST_DAY(SYSDATE ) + 1)
每个季度最后一天的晚上11点 TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24
每星期六和日早上6点10分 TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)每秒钟执行次
Interval => sysdate + 1/(24 * 60 * 60)
如果改成sysdate + 10/(24 * 60 * 60)就是10秒钟执行次
每分钟执行
Interval => TRUNC(sysdate,'mi') + 1/ (24*60)如果改成TRUNC(sysdate,'mi') + 10/ (24*60) 就是每10分钟执行次
每天定时执行
例如:每天的凌晨1点执行
Interval => TRUNC(sysdate) + 1 +1/ (24)每周定时执行
例如:每周一凌晨1点执行
Interval => TRUNC(next_day(sysdate,'星期一'))+1/24每月定时执行
例如:每月1日凌晨1点执行
Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24每季度定时执行
例如每季度的第一天凌晨1点执行
Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24每半年定时执行
例如:每年7月1日和1月1日凌晨1点
Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24每年定时执行
例如:每年1月1日凌晨1点执行
Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24
转自:http://blog.sina.com.cn/s/blog_3f1dd8180100eh2p.html
用过ORACLE的JOB的朋友也许都能够感觉到它的强大,和JAVA中的quartz有异曲同工之妙,可以少了很多的重复劳动;但是也会有许多问题,就是执行时间段和执行时间比较不容易确定。这其实都是我们还不熟悉JOB的interval造成的。
interval:sysdate+2 每隔2天执行一次 sysdate+1/2 每隔12小时执行一次 sysdate+3/1440 每隔 3 分钟执行一次
- job 创建-删除-定时
- oracle job 创建 删除
- oracle创建删除job
- oracle创建job定时任务
- Oracle-job 创建定时任务
- oracle创建定时任务job
- oracle创建job和删除job
- oracle通过JOB定时删除数据
- 创建 和 删除 oracle job
- ORACLE通过JOB定时创建序列
- 创建定时执行存储过程的JOB
- oracle 创建job定时执行任务
- plsql创建oracle job定时调用
- SQL Server 创建定时任务JOB
- oracle创建定时作业(job)
- Oracle:创建JOB定时执行存储过程
- plsql创建job执行定时任务
- SQL Server 创建定时任务JOB
- asp.net下载Excel模板和导入导出Excel功能
- 安装Oracle 11g RAC R2 之Linux DNS 配置
- 世界上最远的距离,肯定是标准规范与实际执行1
- 5、java 类的概念
- HTML 对字体的样式的选择
- job 创建-删除-定时
- exec函数族
- POI中设置Excel单元格格式
- linux软链接和硬链接
- OC-KVC/KVO
- 百度地图小案例
- 6、static特点
- [leetcode]Best Time to Buy and Sell Stock I, II, III
- Java Design Pattern Observer 观察者模式