根据特定日期安排数据库作业

时间:2015-05-07 16:33:49

标签: database oracle oracle11g

我有数据库工作,现在我想在特定日期运行这份工作。日期可以是任何一个月,如2015年5月15日的第一次运行,下次运行将于2015年7月20日。2015年10月11日等等。

通过调度程序,我们看不到这种可能性。我想这可以通过一些函数来完成,并在调度程序中调用它。

有人可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:3)

您的任务可以在不使用任何其他功能的情况下解决,您可以使用FREQ=YEARLYBYDATE子句创建计划,您可以指定确切的日期。例如:

BEGIN
 dbms_scheduler.create_schedule('my_sched', 
   repeat_interval => 'FREQ=YEARLY;BYDATE=0515,0720,1011');
END;

此plsql块将创建名为my_sched的计划,其中包含每年5月15日,7月20日和10月11日。您可以在创建作业时使用此计划。

您可以在此处详细了解oracle日历语法:http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_sched.htm#BABEJGCH