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);
oracle删除其他用户job,创建oracle job、删除oracle job的脚本
最新推荐文章于 2024-01-02 09:09:14 发布