gpt4 book ai didi

Oracle Scheduler – 使用单个作业创建复杂的计划

转载 作者:行者123 更新时间:2023-12-01 11:47:45 25 4
gpt4 key购买 nike

我有一个在 Oracle 10g 数据库上运行的作业,执行计划非常简单。

BYDAY=MON,TUE,WED,THU,FRI;BYHOUR=6,10,14,18

现在的问题是我们必须改变计划——但仅限于周一。因此,在星期一,第一份工作应该在 8 点而不是 6 点运行。然后像所有其他作业一样(10、14、18)。而从星期二到星期五,它应该按上述方式运行。

最简单的方法是为星期一创建第二个作业,然后从原始作业中删除星期一。然而,这对我们的应用程序来说是一个问题,因为它每次导入只依赖于一个作业。

所以问题是:有没有办法通过一个作业告诉调度程序在周二至周五的 6、10、14、18 点和周一的 8、10、14、18 点运行?

我阅读了有关使用 PL/SQL 表达式指定重复间隔的内容。但我没有找到是否有办法做到这一点。

谢谢你的帮助

最佳答案

创建一个复合计划,并在创建时将其分配给作业。

例如:

begin
dbms_scheduler.create_schedule('MY_SCHED1', repeat_interval =>
'FREQ=DAILY;BYDAY=TUE,WED,THU,FRI;BYHOUR=6,10,14,18');
END;
/
begin
dbms_scheduler.create_schedule('MY_SCHED2', repeat_interval =>
'FREQ=DAILY;BYDAY=MON;BYHOUR=8,10,14,18');
END;
/
begin
dbms_scheduler.create_schedule('MAIN', repeat_interval =>
'MY_SCHED1, MY_SCHED2');
END;
/

现在您只需将名为“MAIN”的计划分配给作业而不是计划字符串。

关于Oracle Scheduler – 使用单个作业创建复杂的计划,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14414026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com