是否可以在每月的特定日期(例如每月 28 日)、每月一次、每月一次執行 oracle apex 自動化?到目前為止,設定僅提供 - 每周、每天等,
是否可以通過調度運算式進行調整?(實施例:FREQ=DAILY;INTERVAL=1;BYHOUR=23;BYMINUTE=0)
提前致謝。
uj5u.com熱心網友回復:
你希望它每個月都觸發一次,所以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
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/346926.html
