假如有表A 在oracle中,按照表中字段createdate以天来分区 现在希望写一个job任务每天删除2天前的数据
要通过删除2天前的区域来删除数据
1.建一个删除2天前数据的procedure:
[code="sql"]
CREATE OR REPLACE PROCEDURE Delete2DaysDatas is
begin
delete from A where createdate < sysdate - 2;
commit;
end;
[/code]
2.建一个Job,每天执行:
[code="sql"]
begin
sys.dbms_job.submit(job => :job,
what => 'Delete2DaysDatas',
interval => 'sysdate+1');
commit;
end;
/
[/code]
参考以下代码:
1 建立存储过程,执行删除操作,删除2天前所有数据。
create or replace procedure DeleteDataForJob
begin
delete from table_name where time < sysdate-2
end DeleteDataForJob;
2建立作业,每天执行一次。
variable job number;
begin dbms_job.submit(:job,'DeleteDataForJob',sysdate,'SYSDATE + 1');
commit;
end;