我的需求:我有72个oracle表,其中包含数据。很少有表有亿万条记录。我需要将数据从72个表复制到另外72个表中。做这件事最好的方法是什么?我想一次性复制5-6个表中的数据,这样就不会为了节省时间而一个接一个地加载数据。不确定我应该如何在oracle中实现它。
发布于 2018-06-25 14:26:09
如果数据库模式中同时存在源表和目标表,则可以遵循以下方法:
a.)使用定义规则的元数据信息创建一个配置表,并为这些表创建自定义insert语句。(可选)
b.)使用将数据从一个表移动到另一个表的逻辑编写一个过程。
c.)使用循环中的DBMS_SCHEDULER编写一个过程,以调度调用步骤b)中定义的复制过程。调度程序将采用打开和关闭会话的情况。
发布于 2018-06-25 14:17:45
我认为你可以使用一些ETL工具。以不同的方式或表格迁移所有数据。
有些是像五角大楼的ETL工具。在这里你可以创建你的图表并运行它。一切都会好起来的。Pentaho也有一个通用的服务器工具。Pentaho Data Integration or ETL
ETL工具将使您有机会提取数据,转换为您想要的任何内容,并加载到任何表或数据库中。
更新
这是ETL工具。据我记忆所及,它适用于windows和linux,也许还有MAC。
发布于 2018-06-24 19:07:23
The fastest way to do this will probably be to use the SQL*Plus COPY command。甲骨文上上下下发誓,他们将弃用COPY,但考虑到他们的客户广泛使用它,我认为他们会在相当长的一段时间内保留它。请注意,如果您希望同时复制多个表,则必须使用到数据库的多个连接,因为据我所知,在发出另一个复制命令之前,没有办法发出一个不等待复制操作完成的复制命令。
祝你好运。
https://stackoverflow.com/questions/51006996
复制相似问题