oracle中使用job

假如有表A 在oracle中,按照表中字段createdate以天来分区 现在希望写一个job任务每天删除2天前的数据
要通过删除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;

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问