首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle JOB 排程實作:DBMS_JOB.SUBMIT 參數詳解與每週五晚間 23:00 執行範例

     編輯:Oracle 資料庫相關知識

建立 JOB 範例

BEGIN
  SYS.DBMS_JOB.SUBMIT(
    job       => :job,
    what      => 'check_err;',           -- 要執行的預存程序
    next_date => TRUNC(SYSDATE) + 23/24, -- 今天 23:00 (23/24 天)
    interval  => 'TRUNC(NEXT_DAY(SYSDATE,''FRIDAY'')) + 23/24' -- 每週五 23:00
  );
  COMMIT;
END;

參數說明

  • job:輸出參數,系統自動分配編號。
  • what:執行內容 (預存程序/匿名區塊)。
  • next_date:下次執行時間點。
  • interval:重複間隔運算式,**必須回傳 DATE 型別**,每次執行後重新計算下次時間。

時間運算撇步

Oracle 日期單位為「天」:

  • 1/24 = 1 小時
  • 1/1440 = 1 分鐘 (24×60)
  • 1/86400 = 1 秒 (24×60×60)

TRUNC(SYSDATE) 取當天 00:00,加 23/24 即 23:00。
NEXT_DAY(SYSDATE, 'FRIDAY') 取下個週五日期,TRUNC 歸零時間,再加 23/24。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved