如何在DBMS_SCHEDULER中设置隔周周日执行的作业?
隔周周日执行的DBMS_JOB间隔表达式
要实现作业隔周周日午夜执行(第一周周日执行、第二周周日跳过、第三周周日执行,以此类推),对应的interval表达式可基于原每周执行逻辑调整,具体如下:
'NEXT_DAY(TRUNC(SYSDATE), ''SUNDAY'') + 14'
完整作业提交示例
SYS.DBMS_JOB.SUBMIT ( job => NewJobID ,what => 'X_Process' ,next_date => TO_DATE('8/2/2023 11:45:00 AM', 'MM/DD/YYYY HH:MI:SS AM') ,interval => 'NEXT_DAY(TRUNC(SYSDATE), ''SUNDAY'') + 14' ,no_parse => FALSE); SYS.DBMS_OUTPUT.PUT_LINE ('Job Number is: ' || to_char(NewJobID)); COMMIT;
逻辑说明
NEXT_DAY(TRUNC(SYSDATE), 'SUNDAY')用于获取当前日期之后的第一个周日午夜时间- 追加
+14会直接跳转到两周后的周日午夜,以此实现隔周执行的效果
内容的提问来源于stack exchange,提问作者NoorStack
相关产品推荐
相关产品推荐

