使用VALUES将数据插入到数据库表中,每次只能插入一条数据。
下面使用循环插入500000条数据到表MEMO中
declare type
id_table_type is table of number
index by binary_integer;
name_table_type is table of varchar2(20)
index by binary_integer;
id_table id_table_type ;
name_table name_table_type ;
begin
for i in 1..500000 loop
id_table(i):=i;
name_table(i):=‘name:‘||i;
end loop;
for i in 1..id_table.count loop
insert into memo(id,name) values(id_table(i),name_table(i));
end loop;
end;
自己测试了一下,改方法大约用了21秒。
如果使用批量绑定:
declare type
id_table_type is table of number
index by binary_integer;
name_table_type is table of varchar2(20)
index by binary_integer;
id_table id_table_type ;
name_table name_table_type ;
begin
for i in 1..500000 loop
id_table(i):=i;
name_table(i):=‘name:‘||i;
end loop;
forall i in 1..id_table.count
insert into memo(id,name) values(id_table(i),name_table(i));
end;
时间大约是2.7秒。
关于自己学到的批量绑定