2011-10-13 84 views
0

我有一個place.file文本文件;使用批量插入將文本文件插入Oracle

place.file

  • 新罕布什爾
  • 新澤西
  • 新墨西哥州
  • 內華達
  • 紐約
  • 俄亥俄州
  • 俄克拉荷馬 ....

在該文件中有4000個地名。我將在oracle和place.file中匹配我的my_place表。所以我想將place.file插入到Oracle中。也許我應該使用批量插入,我怎麼做批量插入?

+0

4000的地方是一個很溫和的量數據。我沒有看到沒有必要使用批量插入或類似的東西。只需使用常規插入。 – Codo

+0

@Codo Infact我想學習使用批量插入。也許我給了一個簡單的例子。 – user951487

回答

2

沒有提及Oracle版本。 (爲了獲得最佳答案,總是包括Oracle版本,Oracle版本,操作系統和操作系統版本。)

但是,您應該爲此使用外部表進行調查。一旦你的設置正確,你可以這樣做:

insert into db_table select ... from external_table; 

或者,您可以使用APPEND暗示的INSERT聲明,使用直接負載。 另外,您可以選擇將要加載數據的表上的NOLOGGING屬性設置爲最佳性能。但是,在啓用NOLOGGING之前,請考慮恢復影響。

希望幫助,

馬克

+0

Oracle版本是10.06 Os Windows7。 – user951487

4

可以從Oracle使用SQL裝載機。

的語法是:

SQLLDR * connection_string *控制= * control_file.ctl *

控制文件包含:

LOAD DATA 
INFILE names.file 
INTO TABLE <table_name> 
FIELDS TERMINATED BY <delimiter> 
OPTIONALLY ENCLOSED BY <enclosing character> 
(<column_name>[, <column_name>, <column_name>]) 
+0

我也會使用SQL Loader。但是,他的BULK插入不同,我想這兩個答案都是。雖然在這種情況下,它將會是批量插入,速度會變慢。 ;) – Guru