利用JOB定時執行儲存過程

2021-08-31 01:52:19 字數 858 閱讀 5344

一、

首先還是得有個儲存過程,假如名稱是myproc。

二、建立job,在 sql行 下:

variable job_no number;

begin

dbms_job.submit(:job_no,

'myproc;',

sysdate,

'sysdate+1/1440');

commit;

end;

其中job_no是該作業的唯一標識,這裡由系統生成。

儲存過程名後面要接乙個分號。

sysdate+1/1440表示每分鐘執行一次。

如果想定在某個時間執行,例如隔n 天的m 點執行。

則為trunc(sysdate+n )+m *60/(24*60)。

三、檢視資料庫中的job:

select * from dba_jobs;
其中what 字段表示作業需要執行的儲存過程名稱。

四、根據job id刪除job:

begin

dbms_job.remove(jobid);

commit;

end;

必須在命令列 下執行。

五、根據job id停止job:

sql> execute dbms_job.broken(702, true);

pl/sql procedure successfully completed

sql> commit;

commit complete

其中的702就是job id,要commit。必須在命令列下執行。

建立JOB定時執行儲存過程

建立job定時執行儲存過程有兩種方式 方式1 通過plsql手動配置job,如下圖 方式2 通過sql語句,如下sql declare job opautodta pls integer 宣告乙個jobid begin sys.dbms job.submit job job opautodta,wh...

Oracle新增job定時執行儲存過程

1 建立儲存過程 刪除臨時表 createorreplaceproceduresp gs clear temp tablesis tmp tbl namevarchar 30 sqltextvarchar 255 cursorcur tmp tablesisselectobject namefrom...

oracle 建立儲存過程 在job 定時執行

一 建立儲存過程。create or replace procedure upd pickup weight is begin update hk delivercost detail deltdetl set deltdetl.pickup weight select nvl hkpictdetl...