1.问题域描述:当前有一张新闻表,主键为fd_objectid varchar2(30),有21行记录,主键值范围(1-21)。要求填充本表数据到 50000条以上,并且内容要符合系统要求。
2.解决方案:复制本表中的数据,修改fd_objectid后(防止主键冲突)插入到表中。
3.以下为oracle的运行脚本:
Declare
i int := 0;
N int :=11;
_range int :=100;
Begin
while (i < N) loop
insert into b_xxfb_yujxw(F_VC_BIAOT,f_vc_laiy,f_vc_zuoz,f_vc_riq,fd_objectid,f_nb_wfid,f_nb_niannbh,f_lb_neir)
select F_VC_BIAOT,f_vc_laiy,f_vc_zuoz,f_vc_riq,
to_char(to_number(fd_objectid)+POWER(2,i)*_range),
f_nb_wfid,f_nb_niannbh,f_lb_neir
from b_xxfb_yujxw;
i := i + 1;
End loop;
End;
4. 执行后表的记录数=2^(N+1)*(原始表记录数)
5.考虑也可以使用序列来实现。