程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 使用oracle job 定時刪除某條記錄

使用oracle job 定時刪除某條記錄

編輯:Oracle數據庫基礎

如何使用Oracle job 定時刪除某條記錄?下文幾步方法教你完成!

1,創建表
create table CJ_JT_NSRCPDMDY
(
ID     VARCHAR2(40)  not null primary key,
CPBH   VARCHAR2(80)  not null,
NSRBH  VARCHAR2(80)  not null,
BZ     VARCHAR2(80)
);

2,測試數據

insert into CJ_JT_NSRCPDMDY values(1,001,001,'啟用');
insert into CJ_JT_NSRCPDMDY values(2,002,002,'啟用');
insert into CJ_JT_NSRCPDMDY values(3,003,003,'不啟用');

3,創建一個刪除垃圾記錄的存儲過程

create or replace procedure mypro as
begin
delete from CJ_JT_NSRCPDMDY where BZ = '不啟用';
end;
/
過程已創建
4,創建JOB,實現每個月第一天的午夜12點刪除CJ_JT_NSRCPDMDY中不啟用的記錄。

variable job number;
begin
dbms_job.submit(:job,'mypro;',trunc(last_day(sysdate)+1),'trunc(last_day(sysdate)+1)');
commit;
end;
/

//////////////////////////////////////////////////////////////////
以上即可完成任務,不要往下執行啦。否則,創建作業時,就馬上啟動作業了。

/////////////////////////////////////////////////////////////////
5,運行JOB
begin
dbms_job.run(:job);
end;
/
過程已成功完成

6,select * from CJ_JT_NSRCPDMDY;
得到預期結果//這個地方應該是查出來3條記錄才對,可是已經把不啟用的記錄提前刪除啦。不知道為什麼。
7、刪除JOB
begin
dbms_job.remove(:job);
end;
/

過程已成功完成

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved