今天创建了一个procedure 想让它每周一 的晚上1点定时执行。用到了orale的jobs
有两种写法
1.
declare
job1 number;
begin
dbms_job.submit(:job1,'analyze_tb;',sysdate,'next_day(trunc(sysdate),''星期一'')+1/24');
end;
/
注:窗口模式下 变量job1 不用加前面的冒号:
2.
DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job => X
,what => 'analyze_tb;'
,next_date => to_date('28-03-2013 01:00:00','dd-mm-yyyy hh24:mi:ss')
,interval => 'next_day(trunc(sysdate),''星期一'')+1/24'
,no_parse => FALSE
);
END;
主要是interval 我写了好多次都报错 原因是 星期一那我之前一直用单引号 ,总是报错. 这里注意是双引号就可以了
另外把各个参数建单说一下 job 系统会返回一个job号 以后根据这个job号操作job
在 user_jobs.job 就是了,一个数字编号
what 是要执行的存储
next_date 是首次执行时间
interval 是时间间隔
要删除job
begin
sys.dbms_job.remove(job);
end;
这里的job 就是之前返回的数字编号
阅读(1498) | 评论(0) | 转发(0) |