oracle job使用
创建
创建JOB就比较简单了,下面就是创建JOB的代码
每天晚上1电job启动一次,执行sp_createtab_tbl_programme存储过程。
VARIABLE testjobid number;
begin
sys.dbms_job.submit(:testjobid,’sp_createtab_tbl_programme;’,trunc(sysdate+1)+1/24,’trunc(sysdate+1)+1/24’);
commit;
end;
/
这里需要注意的是,在submit方法的前面一定要先定义job这个变量,另外,submit方法的第二个参数是一个存储过程的名,记得在后面添加“:”号,在next_date是一个时间类型变量而不是一个字符串,所以需要注意不要把它当成字符串,不需要对该参数加引号。最后一个参数interval是一个字符串类型,记得添加引号。最常见的错误如下图所示:
ORA-01008: not all variables bound就是没有定义变量的意思。一定记的在使用submit方法时定义jobid变量。
下面是常有的设置Interval的方法:
2 每天固定时间运行,比如早上8:10分钟:Trunc(Sysdate+1) + 8/24
2 每天:trunc(sysdate+1)
2 每周:trunc(sysdate+7)
2 每月:trunc(sysdate+30)
2 每个星期日:next_day(trunc(sysdate),’SUNDAY’)
2 每天6点:trunc(sysdate+1)+6/24
2 半个小时:sysdate+30/1440
修复
DBMS_JOB.BROKEN(<JOB_ID>,FALSE);