创建oracle job、删除oracle job的脚本

1、查找用户自定义job的脚本:select t.WHAT,
       t.INTERVAL,
       t.job,
       t.BROKEN,
       t.FAILURES,
       t.LAST_DATE,
       t.LAST_SEC,
       t.THIS_DATE,
       t.THIS_SEC,
       t.NEXT_DATE,
       t.NEXT_SEC
  from user_jobs t;
其中,t.job得到的数字,是job的唯一标示,后面会不断用到它。


2、删除指定job的脚本:
dbms_job.remove(job);


3、创建job的脚本:
dbms_job.submit 这个过程有五个参数:job、what、next_date、interval与no_parse。


PROCEDURE Submit ( job       OUT binary_ineger,
What      IN  varchar2,
next_date IN  date,
interval  IN  varchar2,
no_parse  IN  booean:=FALSE);


job参数:由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作。
what参数:将被执行的PL/SQL代码块。
next_date参数:何时将运行这个工作。
interval参数:何时这个工作将被重执行。
no_parse参数:此工作在提交时或执行时是否应进行语法分析,TRUE指示此PL/SQL代码在它第一次执行时应进行语法分析,而FALSE指示本PL/SQL代码应立即进行语法分析。




执行下面脚本
declare
  job1 number;
begin
  sys.dbms_job.submit(job => job,
    what => 'prc_g_test;',
    next_date => to_date('2014-10-28 05:00:00', 'yyyy-mm-dd hh24:mi:ss'),
    interval => 'sysdate+1/1440');--每天1440分钟,即一分钟运行test过程一次
  commit;
end;
我们在实际执行中,喜欢用类似 trunc(sysdate) + 1 + 1/24这样的语句作为 interval 的值。其中 trunc(sysdate)的效果,是获取当次执行时的年月日,但舍弃时分秒。因此 trunc(sysdate) + 1,是“下次执行是当次执行的后一天0点”的意思,而 trunc(sysdate) + 1 + 1/24,是“下次执行是当次执行后一天的1点”的意思。具体参看帖子 Oracle trunc()函数的用法


4、立即执行一个job:
dbms_job.run(job); 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值