日期:2014-05-16  浏览次数:20467 次

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