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);
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);