呵呵 最简单的办法是insert into tname select * from tname; 敲50编基本可以满足要求有空的时候commit一下
:(..我知道用循环,有个朋友告诉我以下代码:For I In 1..10000 Loop insert into test values('name字段内容','jianjie字段内容'); End Loop;当然这是不完整的,好像没有定义变量,我不知道怎么定义啊。。我不需要深入学习ORACLE。。我只需要有100M数据来进行测试我的程序。。所以请给出完整的代码。。
可以用循环 也可以利用笛卡儿乘机来INSERT
create or replace procedure p1 as v_num number(20,0); begin v_num :=1; loop exit when v_num = 1000000000 insert into test(content) values('第'||to_char(v_num)||'条纪录'); end loop; commit; end ; 然后执行该存储过程就行了
不用这么麻烦啦! 这样是帮不了这位弟兄的。(引用:......当然这是不完整的,好像没有定义变量,我不知道怎么定义啊。。我不需要深入学习ORACLE。。我只需要有100M数据来进行测试我的程序。。所以请给出完整的代码。。) declare v_num number(20,0); v_Bytes number(15,2); begin v_num :=1; loop loop exit when v_num = 1000000000; insert into test(content) values('第'||to_char(v_num)||'条纪 录'); end loop; commit; select round(bytes/1024/1024,2) into v_Bytes from user_segments where SEGMENT_NAME='TEST' and segment_type='TABLE'; exit when v_Bytes >=100; --比较大小是否达到100M end loop; end ; / 进入SQL*plus,拷贝上面的语句回车执行即可。
改了一下Framers(边城浪子)兄的代码 declare v_num number(20,0); v_Bytes number(15,2); begin v_num :=1; loop loop exit when v_num = 1000000000; insert into test(content) values('第'||to_char(v_num)||'条纪 录'); if mod(v_num ,1000)=0 then//分段提交 commit; end if; end loop; commit; select round(bytes/1024/1024,2) into v_Bytes from user_segments where SEGMENT_NAME='TEST' and segment_type='TABLE'; exit when v_Bytes >=100; --比较大小是否达到100M end loop; end ; /
呵呵 还在争?简单的就是insert into tname select * from tname;多执行几次; 学过数学的人都知道数量是呈2次冥拓展什么循环都不要 嘿嘿 想当初我也是这么凑足几千万的数据的
最简单的办法是insert into tname select * from tname;
敲50编基本可以满足要求有空的时候commit一下
insert into test values('name字段内容','jianjie字段内容');
End Loop;当然这是不完整的,好像没有定义变量,我不知道怎么定义啊。。我不需要深入学习ORACLE。。我只需要有100M数据来进行测试我的程序。。所以请给出完整的代码。。
也可以利用笛卡儿乘机来INSERT
as
v_num number(20,0);
begin
v_num :=1;
loop
exit when v_num = 1000000000
insert into test(content) values('第'||to_char(v_num)||'条纪录');
end loop;
commit;
end ;
然后执行该存储过程就行了
declare
v_num number(20,0);
v_Bytes number(15,2);
begin
v_num :=1;
loop
loop
exit when v_num = 1000000000;
insert into test(content) values('第'||to_char(v_num)||'条纪 录');
end loop;
commit;
select round(bytes/1024/1024,2) into v_Bytes from user_segments
where SEGMENT_NAME='TEST' and segment_type='TABLE';
exit when v_Bytes >=100; --比较大小是否达到100M
end loop;
end ;
/
进入SQL*plus,拷贝上面的语句回车执行即可。
declare
v_num number(20,0);
v_Bytes number(15,2);
begin
v_num :=1;
loop
loop
exit when v_num = 1000000000;
insert into test(content) values('第'||to_char(v_num)||'条纪 录');
if mod(v_num ,1000)=0 then//分段提交
commit;
end if;
end loop;
commit;
select round(bytes/1024/1024,2) into v_Bytes from user_segments
where SEGMENT_NAME='TEST' and segment_type='TABLE';
exit when v_Bytes >=100; --比较大小是否达到100M
end loop;
end ;
/
还在争?简单的就是insert into tname select * from tname;多执行几次;
学过数学的人都知道数量是呈2次冥拓展什么循环都不要
嘿嘿 想当初我也是这么凑足几千万的数据的