在 oracle 中創(chuàng)建定時任務(wù)可以使用 dbms_job 包,步驟如下:1. 創(chuàng)建一個 job(任務(wù));2. 啟用 job;3. 禁用 job;4. 刪除 job;5. 查看 job 信息。例如,要每天早上 8:00 運行一個名為 “my_job” 的任務(wù),執(zhí)行名為 “my_procedure” 的存儲過程,可以使用 dbms_job.submit 和 dbms_job.enable 命令。
如何使用 Oracle 創(chuàng)建定時任務(wù)
直接回答:
在 Oracle 中創(chuàng)建定時任務(wù)可以使用DBMS_JOB包。
詳細(xì)步驟:
1. 創(chuàng)建一個 job (任務(wù))
<code class="sql">BEGIN DBMS_JOB.SUBMIT( job => 'job_name', -- 任務(wù)名稱 what => 'begin your_procedure_name; end;', -- 要執(zhí)行的 PL/SQL 代碼 next_date => date '2023-03-08', -- 下次執(zhí)行時間 interval => 'FREQ=DAILY', -- 重復(fù)頻率(例如,每天一次) comments => 'your_comments' -- 注釋(可選) ); END; /</code>
登錄后復(fù)制
2. 啟用 job
<code class="sql">BEGIN DBMS_JOB.ENABLE(job => 'job_name'); END; /</code>
登錄后復(fù)制
3. 禁用 job
<code class="sql">BEGIN DBMS_JOB.DISABLE(job => 'job_name'); END; /</code>
登錄后復(fù)制
4. 刪除 job
<code class="sql">BEGIN DBMS_JOB.REMOVE(job => 'job_name'); END; /</code>
登錄后復(fù)制
5. 查看 job 信息
<code class="sql">SELECT * FROM USER_JOBS WHERE job_name = 'job_name';</code>
登錄后復(fù)制
示例:
要每天早上 8:00 運行一個名為 “my_job” 的任務(wù),執(zhí)行名為 “my_procedure” 的存儲過程,可以使用以下命令:
<code class="sql">BEGIN DBMS_JOB.SUBMIT( job => 'my_job', what => 'begin my_procedure; end;', next_date => 'trunc(sysdate) + 8/24', -- 今天早上 8:00 interval => 'FREQ=DAILY', comments => 'Runs my_procedure daily' ); DBMS_JOB.ENABLE(job => 'my_job'); END; /</code>
登錄后復(fù)制