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

发布于 2024-12-09 20:24:48 字数 281 浏览 1 评论 0原文

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

place.file

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

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

I have a place.file text file;

place.file

  • New Hampshire
  • New Jersey
  • New Mexico
  • Nevada
  • New York
  • Ohio
  • Oklahoma
    ....

There are 4000 place names in this file. I will match my my_place table in oracle and place.file . So I want to insert the place.file into the Oracle . Maybe I should use bulk insert, how can I do bulk insert ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小忆控 2024-12-16 20:24:48

您可以使用 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>]) 

You can use SQL Loader from Oracle.

The syntax is:

sqlldr *connection_string* control=*control_file.ctl*

The control file contains:

LOAD DATA
INFILE names.file
INTO TABLE <table_name>
FIELDS TERMINATED BY <delimiter>
OPTIONALLY ENCLOSED BY <enclosing character>
(<column_name>[, <column_name>, <column_name>]) 
北凤男飞 2024-12-16 20:24:48

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

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

insert into db_table select ... from external_table;

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

希望有帮助,

-马克

No mention of an Oracle version. (For the best possible answer, always include Oracle version, Oracle edition, OS, and OS version.)

However, you should investigate using an external table for this purpose. Once you have that set up correctly, you can do:

insert into db_table select ... from external_table;

Optionally, you could use the APPEND hint on the INSERT statement, to use direct load.
Also,optionally, you could set the NOLOGGING attribute on the table you're loading the data into, for best performance. But, consider the recovery implications before you enable NOLOGGING.

Hope that helps,

-Mark

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文