将大量数据从Oracle DB导出到Oracle DB的最佳方法

时间:2014-04-27 21:46:07

标签: sql database oracle csv

那是我在stackoverflow中的第一篇文章,我还是说我真的很喜欢那个网站!

对于我需要导出的项目,然后将一些巨大的Oracle表从一个DB重新导入到另一个DB(大约1亿行和30行)。

我的想法是将表导出为平面文件,然后考虑到架构已经存在,重新导入另一个空表。

我正在使用PL / SQL Developer和/或SQL * Plus来进行操作。

我已经测试了SQL * Loader,它似乎做得很好,但在我看来它真的很慢:大约30秒导入一个包含100万行/ 30行的CSV文件。

你能带哪种解决方案? SQL * Loader是最好的工具吗?一些更好的工具已经存在? CSV是关于大小和处理时间的更好的格式吗?

提前多多感谢。

2 个答案:

答案 0 :(得分:4)

使用Oracle DataPump aka expdp和impdp Overview of Oracle Data Pump请参阅Examples of Using Data Pump ExportExamples of Using Data Pump Import

确实没有必要自己编程,没有办法可以超越expdp / impdp。别忘了还有一个使用network_link的impdp选项。在这种情况下,您只需跳过dmp文件并直接导入目标数据库。这可以使用命令行中的impdp完成,也可以使用pl / sql使用dbms_datapump。有关文档,请参阅PL/SQL Packages and Types Reference

答案 1 :(得分:2)

您可以使用以下选项之一:

  1. SQL Loader(您可能已尝试过)。
  2. 传统数据导出和导入(exp / imp命令)。
  3. Oracle数据泵(expdp / impdp)。
  4. 此外,如果您需要定期执行此操作,则可以使用oracle scheduler或shell脚本安排此操作。