将数据批量插入 Oracle 数据库的最佳方法
我将创建很多数据脚本,例如 INSERT INTO 和 UPDATE
如果不是 1,000,000 条记录,也会有 100,000 多条记录
快速将这些数据导入 Oracle 的最佳方法是什么?我已经发现 SQL Loader 不适合这样做,因为它不会更新单独的行。
谢谢
更新:我将用 C# 编写一个应用程序来执行此操作
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
通过 SQL* 加载阶段表中的记录加载器。然后使用批量操作:
Load the records in a stage table via SQL*Loader. Then use bulk operations:
为了尽可能快地保存它,我会将其全部保存在数据库中。
使用外部表(允许Oracle读取文件内容),
并创建一个存储过程来进行处理。
更新可能会很慢,如果可能的话,考虑根据旧表(有更新)中的所有记录创建一个新表,然后切换新表和新表可能是个好主意。周围的旧桌子。
To keep It as fast as possible I would keep it all in the database.
Use external tables (to allow Oracle to read the file contents),
and create a stored procedure to do the processing.
The update could be slow, If possible, It may be a good idea to consider creating a new table based on all the records in the old (with updates) then switch the new & old tables around.
使用 MS Excel 或 LibreOffice Calc 等电子表格程序怎么样?这就是我执行批量插入的方式。
="INSERT INTO YOUR_TABLE (COL_A, COL_B, COL_C) VALUES ('"&A1&"', "&B1&", to_date ('"&C1&"', 'mm/dd/yy) '));"
How about using a spreadsheet program like MS Excel or LibreOffice Calc? This is how I perform bulk inserts.
="INSERT INTO YOUR_TABLE (COL_A, COL_B, COL_C) VALUES ('"&A1&"', "&B1&", to_date ('"&C1&"', 'mm/dd/yy'));"