create table toys (
toy_id integer
not null primary key,
toy_name varchar2(20)
not null
);
declare
start_time pls_integer;
num_rows pls_integer := 100000;
begin
start_time := dbms_utility.get_time ();
for i in ( select level l from dual connect by level <= num_rows )
loop
insert into toys ( toy_id, toy_name )
values ( i.l, 'toy' || lpad ( i.l, 7, '0' ) );
end loop;
dbms_output.put_line (
'Loop duration ' || ( dbms_utility.get_time () - start_time )
);
execute immediate 'truncate table toys';
start_time := dbms_utility.get_time ();
insert into toys ( toy_id, toy_name )
select level l, 'toy' || lpad ( level, 7, '0' )
from dual
connect by level <= num_rows;
dbms_output.put_line (
'One statement duration ' || ( dbms_utility.get_time () - start_time )
);
end;
/
Loop duration 1298
One statement duration 71