按天拆分数据的一个存储过程:
create or replace procedure lk_migrate is
cursor cur1 is
select id,to_date(l.validfrom,'YYYY-MM-DD') startday,to_date(l.validto,'YYYY-MM-DD') quitday from solution l;
n number;
k number;
m number:=0;
begin
for i in cur1 loop
n:=i.quitday-i.startday+1;
k:=0;
for j in 1..n loop
insert into solutionconfig
select solution_config_id_seq.nextval,1,i.id,to_char(i.startday+k,'YYYY-MM-DD') day,'00:00:00','24:00:00',
0,0,0,1,1,0
from dual;
k:=k+1;
end loop;
m:=m+1;
dbms_application_info.set_action('completed '||m);
if MOD(m,10000)=0 THEN
COMMIT;
end if;
end loop;
commit;
end lk_migrate;