本次爲了支持測試工作,需要將表中每1000個ID讀取成一行。
做法:1、首先按rownum,1000條分一組:ceil(rownum/1000),將組號和id 的關係插入msg_tab_cn表。
insert into msg_tab_cn as select ceil(rownum/1000) cn,id from (select id from msg_tab order by substr(id,-1));
2、按分組建索引
create index id_ru on msg_tab_cn(cn);
3、合併每個1000行。
begin
for v_loop in 0..9999 loop
insert into msg_fin select replace(wm_concat(id),',',';') from msg_tab_cn where cn = v_loop;
if mod(v_loop,100) =0 then
commit;
end if;
end loop;
end;