2011-10-13 102 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