我有数据库工作,现在我想在特定日期运行这份工作。日期可以是任何一个月,如2015年5月15日的第一次运行,下次运行将于2015年7月20日。2015年10月11日等等。
通过调度程序,我们看不到这种可能性。我想这可以通过一些函数来完成,并在调度程序中调用它。
有人可以帮我解决这个问题。
答案 0 :(得分:3)
您的任务可以在不使用任何其他功能的情况下解决,您可以使用FREQ=YEARLY
和BYDATE
子句创建计划,您可以指定确切的日期。例如:
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