那是我在stackoverflow中的第一篇文章,我还是说我真的很喜欢那个网站!
对于我需要导出的项目,然后将一些巨大的Oracle表从一个DB重新导入到另一个DB(大约1亿行和30行)。
我的想法是将表导出为平面文件,然后考虑到架构已经存在,重新导入另一个空表。
我正在使用PL / SQL Developer和/或SQL * Plus来进行操作。
我已经测试了SQL * Loader,它似乎做得很好,但在我看来它真的很慢:大约30秒导入一个包含100万行/ 30行的CSV文件。
你能带哪种解决方案? SQL * Loader是最好的工具吗?一些更好的工具已经存在? CSV是关于大小和处理时间的更好的格式吗?
提前多多感谢。
答案 0 :(得分:4)
使用Oracle DataPump aka expdp和impdp Overview of Oracle Data Pump请参阅Examples of Using Data Pump Export和Examples of Using Data Pump Import
确实没有必要自己编程,没有办法可以超越expdp / impdp。别忘了还有一个使用network_link的impdp选项。在这种情况下,您只需跳过dmp文件并直接导入目标数据库。这可以使用命令行中的impdp完成,也可以使用pl / sql使用dbms_datapump。有关文档,请参阅PL/SQL Packages and Types Reference。
答案 1 :(得分:2)
您可以使用以下选项之一:
此外,如果您需要定期执行此操作,则可以使用oracle scheduler或shell脚本安排此操作。