使用批量插入将文本文件插入Oracle

时间:2011-10-13 05:48:49

标签: oracle oracle10g bulkinsert

我有一个place.file文本文件;

place.file

  • 新罕布什尔州
  • 新泽西州
  • 新墨西哥州
  • 内华达州
  • 纽约
  • 俄亥俄州
  • 俄克拉何马 ....

此文件中有4000个地名。我将在oracle和place.file中匹配my_place表。所以我想将place.file插入Oracle。也许我应该使用批量插入,我该如何进行批量插入?

2 个答案:

答案 0 :(得分:4)

您可以使用Oracle的SQL Loader。

语法为:

  

sqlldr * connection_string * control = * 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>]) 

答案 1 :(得分:2)

没有提到Oracle版本。 (为了获得最佳答案,始终包括Oracle版本,Oracle版本,操作系统和操作系统版本。)

但是,您应该调查使用外部表来实现此目的。正确设置后,您可以执行以下操作:

insert into db_table select ... from external_table;

或者,您可以使用APPEND语句上的INSERT提示来使用直接加载。 此外,您可以选择在要加载数据的表上设置NOLOGGING属性,以获得最佳性能。但是,在启用NOLOGGING之前,请考虑恢复问题。

希望有所帮助,

-Mark