批量插入数据到Oracle数据库的最佳方法

5

我将创建许多数据脚本,例如INSERT INTO和UPDATE

如果不是100,000条记录就是1,000,000条记录

如何快速将此数据导入Oracle?我已经发现SQL Loader对此不好,因为它不能更新单个行。

谢谢

更新:我将编写一个C#应用程序来完成这个任务。


搜索"Oracle批量插入"。 - Mitch Wheat
3个回答

10

如果我想更新一行,我能在同一张表上使用内连接吗?还是说那样做行不通? - Jon
典型情况是您需要加载许多行数据。每一行数据将被插入到目标表中,如果是新的数据,则会进行更新操作。这是MERGE语句的标准用例。不清楚它是否适用于您的情况。 - Vincent Malgrat
有没有办法在记录不在文件中而是在内存中时使用SQL*Loader?比如说,在Spark数据框架中。 - Kumar Vaibhav

6
为了尽可能保持速度快,我建议将所有内容都保存在数据库中。 使用外部表(允许Oracle读取文件内容), 并创建存储过程进行处理。
更新可能会很慢。如果可能的话,可以考虑基于旧记录(带有更新)创建一个新表,然后切换新旧表。

3
如何使用类似于MS Excel或LibreOffice Calc的电子表格程序呢?这是我进行批量插入的方法。
1. 以表格的形式准备你的数据。 2. 假设你有三列,A(文本)、B(数字)和C(日期)。在D列中输入以下公式。根据需要进行调整。
="INSERT INTO YOUR_TABLE (COL_A, COL_B, COL_C) VALUES ('"&A1&"', "&B1&", to_date ('"&C1&"', 'mm/dd/yy'));"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接