[英]Copying data from one oracle database to another oracle database using C#
将数据从一个Oracle数据库复制到另一个Oracle数据库的标准方法是什么?
1)从源表读取数据并使用配置复制到目标位置的临时表(即,有多个表,每个表具有单独的临时表)2)目前没有Clob数据,但将来可能会使用Clob数据。 3)将所有内容读取到内存中(如果大数据块读取)
不应使用Oracle链接不应使用文件代码仅应使用C#,而不能使用任何数据库过程。
我常用的一种方法是在源数据库上使用DataReader,然后仅在目标数据库上执行插入操作(一定要使用Bind Parameters )。
请注意,DataReader擅长在通过表时不占用太多内存(我相信默认情况下,它使用快进,只读游标)。 这意味着在给定时间只有少量数据保留在内存中。
以下是需要注意的事项:
人际关系
如果您使用的是具有关系的数据,则需要进行处理。 我已经看到有两种方法可以解决此问题:
自动产生的ID值
这些列通常通过禁用给定表的自动递增功能并允许标识插入来处理(我使用了一些SQL Server术语,我不记得它如何在Oracle上工作)。
交易次数
如果您要移动大量数据,则交易将非常昂贵。
重复性/删除目标数据
除非您比我们其他人更出色,否则您可能必须多次运行此程序(至少在开发过程中)。 这意味着您可能想要一种删除目标数据的方法。
平台特定方法
在SQL Server中,有许多方法可以执行快速的批量插入(通过放弃诸如引用完整性检查之类的小事情)。 Oracle工具集中可能有类似的功能。
表/列元数据
我还没有在Oracle中执行此操作,但是看起来您可以使用此处提到的视图获取表和列上的元数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.