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.考虑也可以使用序列来实现。
本文介绍了一种在Oracle数据库中快速扩充表数据的方法,通过复制原有数据并修改主键来增加记录数量,适用于需要大量测试数据的场景。提供了一个具体的PL/SQL脚本实例,演示如何将一张初始有21行记录的表扩展到50000条以上。
1278

被折叠的 条评论
为什么被折叠?



