如何 运行 带有循环的oracle中的存储过程

how to run stored procedure in oracle with loop

我想通过匿名块调用过程,例如 开始 t_maha_del_22_06_p('22.06.2020');结束; 但我 运行 它一次,并希望用循环调用来占用一个大的日期时间 就像从 8 月 1 日到 15 日。我该怎么做?


create table t_maha_delete_22_06
(dt date,text varchar2(100));


create or replace procedure my_sch.t_maha_del_22_06_p(p_dt in date default trunc(sysdate) -1) as
begin
delete from t_maha_delete_22_06
where trunc(dt) = p_dt;
commit;

insert into t_maha_delete_22_06
select 
trunc(p_dt) dt,
'blablabla' text from dual 
commit;
end;

您可以按如下方式循环执行:

begin 
For dt in (select date '2020-08-01' + level - 1 as dates
           From dual 
           Connect by level <= date '2020-08-15' - date '2020-08-01')
Loop
t_maha_del_22_06_p(dt.dates);
End loop;
end; 
/