Oracle APEX 自动化计划

Oracle APEX Automation Schedule

是否可以在每月的特定日期(例如每月 28 日)、、、每月一次、、每月执行一次 oracle apex 自动化?到目前为止,设置仅提供 - 每周、每天等,

是否可以通过计划表达式进行调整? (示例:FREQ=DAILY;INTERVAL=1;BYHOUR=23;BYMINUTE=0

提前致谢。

您希望它每个月触发一次,所以 FREQ=MONTHLY;INTERVAL=1。那么应该是这个月的28号,所以BYMONTHDAY=28。小时和分钟并不重要,所以只需输入 BYHOUR=8;BYMINUTE=0 或您喜欢的任何内容即可。

有一种非常简单的方法可以对此进行测试。 APEX自动化使用oracle调度日历语法,可以使用dbms_scheduler.evaluate_calendar_string

进行评估
DECLARE
 start_date        TIMESTAMP;
 return_date_after TIMESTAMP;
 next_run_date     TIMESTAMP;
 l_interval        VARCHAR2(500) := 'FREQ=MONTHLY;INTERVAL=1;BYMONTHDAY=28;BYHOUR=8;BYMINUTE=0';
BEGIN
  start_date := current_timestamp;
  return_date_after := start_date;
  FOR i IN 1..5
  LOOP
    dbms_scheduler.evaluate_calendar_string
    (
      l_interval, 
      start_date,
      return_date_after, 
      next_run_date
    );
    
    dbms_output.put_line('next_run_date: ' || TO_CHAR(next_run_date,'fmDay, DD-MON-YYYY HH24:MI SS'));
    return_date_after := next_run_date;
  END LOOP;
END;
/



next_run_date: Sunday, 28-NOV-2021 8:0 59
next_run_date: Tuesday, 28-DEC-2021 8:0 59
next_run_date: Friday, 28-JAN-2022 8:0 59
next_run_date: Monday, 28-FEB-2022 8:0 59
next_run_date: Monday, 28-MAR-2022 8:0 59