oracle 數(shù)據(jù)庫(kù)創(chuàng)建定時(shí)任務(wù)的方法:dbms_scheduler 包:創(chuàng)建作業(yè)、程序,將程序與作業(yè)關(guān)聯(lián),安排作業(yè)。作業(yè)調(diào)度程序:使用圖形界面創(chuàng)建和管理定時(shí)任務(wù)。dbms_job 包:創(chuàng)建作業(yè),指定要運(yùn)行的程序,安排作業(yè)。
如何創(chuàng)建 Oracle 數(shù)據(jù)庫(kù)定時(shí)任務(wù)
Oracle 數(shù)據(jù)庫(kù)提供了多種方法來(lái)創(chuàng)建定時(shí)任務(wù),包括 DBMS_SCHEDULER 包、作業(yè)調(diào)度程序和 dbms_job 包。
DBMS_SCHEDULER 包
DBMS_SCHEDULER 包提供了一個(gè)創(chuàng)建定時(shí)調(diào)度的程序接口。要使用此包創(chuàng)建定時(shí)任務(wù),請(qǐng)執(zhí)行以下步驟:
- 創(chuàng)建一個(gè)作業(yè):
<code class="sql">BEGIN DBMS_SCHEDULER.CREATE_JOB(job_name => 'my_job', job_type => 'SCHEDULED_JOB'); END; /</code>
登錄后復(fù)制
- 創(chuàng)建一個(gè)程序:
<code class="sql">CREATE OR REPLACE PROCEDURE my_procedure AS BEGIN -- 你的代碼 END; /</code>
登錄后復(fù)制
- 將程序與作業(yè)關(guān)聯(lián):
<code class="sql">BEGIN DBMS_SCHEDULER.SET_JOB_ACTION(job_name => 'my_job', subprogram_name => 'my_procedure'); END; /</code>
登錄后復(fù)制
- 安排作業(yè):
<code class="sql">BEGIN DBMS_SCHEDULER.SCHEDULE_JOB(job_name => 'my_job', next_date => to_date('2023-03-08', 'yyyy-mm-dd'), repeat_interval => 'FREQ=DAILY'); END; /</code>
登錄后復(fù)制
作業(yè)調(diào)度程序
作業(yè)調(diào)度程序是一個(gè)圖形用戶(hù)界面 (GUI) 工具,可用于創(chuàng)建和管理定時(shí)任務(wù)。要使用作業(yè)調(diào)度程序創(chuàng)建定時(shí)任務(wù),請(qǐng)按照以下步驟操作:
-
打開(kāi)作業(yè)調(diào)度器(適用于 Windows)或運(yùn)行 dbmsched(適用于 UNIX)。
單擊“新建”按鈕。
輸入作業(yè)名稱(chēng)和描述。
從“階段”選項(xiàng)卡中選擇“作業(yè)”類(lèi)型。
在“程序”選項(xiàng)卡中,指定要運(yùn)行的程序。
在“時(shí)間表”選項(xiàng)卡中,安排作業(yè)。
DBMS_JOB 包
DBMS_JOB 包提供了另一個(gè)創(chuàng)建定時(shí)調(diào)度的程序接口。要使用此包創(chuàng)建定時(shí)任務(wù),請(qǐng)執(zhí)行以下步驟:
- 創(chuàng)建一個(gè)作業(yè):
<code class="sql">BEGIN DBMS_JOB.SUBMIT(job => my_job, next_date => to_date('2023-03-08', 'yyyy-mm-dd'), interval => 'FREQ=DAILY', what => 'my_procedure'); END; /</code>
登錄后復(fù)制