對於大數據量插入Oracle數據庫的場合,可以采用批量插入語法。
比如有一個emp表,有id,name,age三個字段,
其單條插入語法是:insert into emp(id,name,age) values('1','andy','25')
其批量插入語法是
insert all
into emp(id,name,age) values('1','andy','25')
into emp(id,name,age) values('2','bill','35')
into emp(id,name,age) values('3','cindy','45')
into emp(id,name,age) values('4','douglas','55')
select 1 from dual
中間的into部分可以用循環寫成,能包括多少句和服務器性能有關,比如我的T14、T440p的11g只接受200句上下,單位的19c服務器能接納2000句。
插入效率也不是越多越好,經實驗,單位機上以1000條左右插入,百萬條耗時約9分鍾,這種插入效率最高。
批量插入時有時會有ora-00905異常出現,但對數據沒影響。個人以為可以ignore。
END