PL SQL編寫定時Job Oracle定時刪除

2021-08-27 17:25:17 字數 2590 閱讀 9390

如何使用oracle儲存過程結合定時job來達到定時刪除指定資料庫表資料的目的。

-- 建立 crxj_collect.test_table 表

create table crxj_collect.test_table

( seq number(8) primary key,

seqtime date

);-- 建立 crxj_collect.test_table_2 表

create table crxj_collect.test_table_2

( seq number(8) primary key,

seqtime date

);

-- 建立insert儲存過程

create or replace procedure crxj_collect.test_insert_proc is

begin

insert into crxj_collect.test_table(seq, seqtime)

values(nvl((select max(seq) from crxj_collect.test_table) +1, 0),sysdate);

insert into crxj_collect.test_table_2(seq, seqtime)

values(nvl((select max(seq) from crxj_collect.test_table) +2, 0),sysdate);

commit;

exception

when others then

rollback;

end test_insert_proc;

-- 建立delete儲存過程

create or replace procedure crxj_collect.test_delete_proc is

begin

delete from crxj_collect.test_table;

delete from crxj_collect.test_table_2;

commit;

exception

when others then

rollback;

end test_delete_proc;

使用command window來執行儲存過程:

sql> 

sql> create or replace procedure crxj_collect.test_delete_proc is

2 begin

3 delete from crxj_collect.test_table;

4 delete from crxj_collect.test_table_2;

5 commit;

6 exception

7 when others then

9 rollback;

10 end test_delete_proc;

11 /

procedure created

sql>

右擊待測試的儲存過程(注意下圖是以另外乙個儲存過程作為例子,但是操作步驟一樣)

start debugger -> run

可以在dbms output欄目檢視是否有錯誤訊息。

可以檢視是否正常執行儲存過程(刪除資料)。

-- 建立定時insert job

var job_num number;

begin

dbms_job.submit(:job_num,'crxj_collect.test_insert_proc;',sysdate,'sysdate + 10/(24*60*60)');

end;

-- 建立定時delete job

var job_num number;

begin

dbms_job.submit(:job_num,'crxj_collect.test_delete_proc;',sysdate,'sysdate + 60/(24*60*60)');

end;

select * from user_jobs;
可以到對應測試表檢視資料

經過觀察,insert執行和delete執行皆正常。

完成。如果你需要修改的話,請這樣:

begin

dbms_job.change

(24,'crxj_collect.test_delete_proc;',sysdate,'sysdate + 1/24');

end;

first created by ifuteng#gmail.com 2014/4/15

PLSQL建立Oracle定時任務

plsql建立oracle定時任務 1 建立任務執行的儲存過程,如名稱為yxtestjob,向測試表中插入資料 2 定時器對應的dbms jobs資料夾,右鍵新建 new 3 建立任務 注 job的定時執行和時間間隔說明 在使用oracle最匹配的工具plsql的時候,如果用plsql建立定時器呢?...

PLSQL建立Oracle定時任務

1 在what值中填寫待執行的儲存過程,多個可以,隔開 2 在間隔中填寫執行時間策略 具體寫法見下述備註 間隔 interval是指上一次執行結束到下一次開始執行的時間間隔,當interval設定為null時,該job執行結束後,就被從佇列中刪除。假如我們需要該job周期性地執行,則要用 sysda...

PLSQL建立Oracle定時任務

在使用oracle最匹配的工具plsql的時候,如果用plsql建立定時器呢?下面我簡單介紹使用工具建立定時器的方法 回到頂部 1 在what值中填寫待執行的儲存過程,多個可以,隔開 2 在間隔中填寫執行時間策略 具體寫法見下述備註 間隔 interval是指上一次執行結束到下一次開始執行的時間間隔...