将数据从一个oracle数据库复制到另一个数据库的标准方式是什么?使用C#将数据从一个oracle数据库复制到另一个oracle数据库
1)使用配置从源表中读取数据并将其复制到目标的临时表(即,有多个表并且每个表具有单独的临时表) 2)目前没有clob数据,但是在将来可能会使用clob数据。 3)阅读一切内存(如果成批读大数据)
不宜使用Oracle链接 不宜用文件 代码只能用C#而不是任何数据库的程序是。
将数据从一个oracle数据库复制到另一个数据库的标准方式是什么?使用C#将数据从一个oracle数据库复制到另一个oracle数据库
1)使用配置从源表中读取数据并将其复制到目标的临时表(即,有多个表并且每个表具有单独的临时表) 2)目前没有clob数据,但是在将来可能会使用clob数据。 3)阅读一切内存(如果成批读大数据)
不宜使用Oracle链接 不宜用文件 代码只能用C#而不是任何数据库的程序是。
我曾经这样做的一种方式是在源数据库上使用DataReader,并在目标数据库上执行插入(当然使用Bind Parameters)。
请注意,DataReader在通过表格移动时不会占用太多内存(我相信它默认使用快进,只读游标)。这意味着在给定的时间只有少量的数据被保存在内存中。
下面是需要提防的事情:
关系
如果你使用具有关系数据的工作,你将需要面对这一切。有两种方法可以解决这个问题:
自动生成的ID值
这些列通常是通过禁用自动处理增加给定表的功能并允许标识插入(我使用了一些SQL Server术语,我不记得它在Oracle上的工作原理)。
交易
如果你正在移动大量的数据,交易将是昂贵的。
重复性/删除目标数据
除非你比我们的休息方式更真棒,你可能必须(在开发过程中至少)运行这个事情不止一次。这意味着您可能需要一种方法来删除目标数据。
平台特定方法
在SQL Server中,有一些方法可以执行批量插入是极快的(通过放弃像参照完整性检查的小东西)。 Oracle工具集中可能有类似的功能。
表/列元
我还没有做到这一点在甲骨文还,但它看起来像您可以使用该意见提到here表和列获取元数据。
投票结束的理由是,通过排除明显的数据库链接,数据库程序和文件传输机制,该解决方案只会对那些真正喜欢重新发明车轮的人有所帮助。 – 2011-02-23 09:02:18
@Gary它是公司的标准程序,在生产数据库之间不存在任何数据库链接。因此我们假设使用Middle-Tier应用程序。我认为我们可以导出到文件,然后读取文件并写入数据库,但是当我们只想从源表读取数据并写入目标表时,这会更有用。 – 2011-02-23 20:51:52