个人实验的时候有时会用到一些大表,在此分享用dba_objects来创建测试大表的方法:
首先建立测试表
SYS@ORCL>create table test nologging as select rownum id,a.* from dba_objects a where 1=2;
Table created.
插入500万条数据:
SYS@ORCL>declare
l_cnt number;
l_rows number:=&1;
begin
insert /*+ append */ into test select rownum,a.* from dba_objects a;
l_cnt:=sql%rowcount;
commit;
while(l_cnt<l_rows)
loop
insert /*+ append */ into test select rownum+l_cnt,
owner,object_name,subobject_name,
object_id,data_object_id,
object_type,created,last_ddl_time,
timestamp,status,temporary,
generated,secondary
from sales
where rownum<=l_rows-l_cnt;
l_cnt:=l_cnt+sql%rowcount;
commit;
end loop;
end; 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
22 /
Enter value for 1: 5000000
old 3: l_rows number:=&1;
new 3: l_rows number:=5000000;
PL/SQL procedure successfully completed.