首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle DBMS_JOB 建立帶參數排程作業(二)

     編輯:Oracle 教學

Oracle DBMS_JOB 建立帶參數排程作業(二)

若需建立帶參數的 JOB,可在 WHAT 參數中宣告變數並賦值,再呼叫預存程序。

範例:呼叫 Pro_Test_JOB(p_param VARCHAR2)

DECLARE
  v_job   NUMBER;
  v_count NUMBER;
BEGIN
  SELECT COUNT(*) INTO v_count
  FROM user_jobs uj
  WHERE UPPER(uj.what) = UPPER('DECLARE para_data VARCHAR2(100):=''參數''; BEGIN Pro_Test_JOB(para_data); END;');

  IF v_count = 0 THEN
    SYS.DBMS_JOB.SUBMIT(
      job       => v_job,
      what      => 'DECLARE para_data VARCHAR2(100):=''參數''; BEGIN Pro_Test_JOB(para_data); END;',
      next_date => SYSDATE,
      interval  => 'SYSDATE+2/24'  -- 每 2 小時
    );
    DBMS_JOB.RUN(v_job);
    COMMIT;
  END IF;
END;

關鍵說明

  • WHAT 字串內雙引號需轉義(雙寫)。
  • INTERVAL 使用 SYSDATE+2/24 表示 2 小時(1/24 = 1 小時)。
  • 先查 USER_JOBS 避免重複建立。
  • 提交後立即 RUN 可馬上執行一次,之後依間隔自動執行。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved