我需要在不同服务器上的两个oracle数据库之间进行一些数据迁移。我已经想过要编写一个jdbc程序的一些方法,但我认为最好的方法是在SQL本身中完成它。我也可以将整个表复制到我要迁移到的数据库中,但是这些表很大,看起来并不像一个优雅的#34;溶液
是否可以在SQL开发人员中打开与一个数据库的连接,然后使用SQL连接到另一个数据库并在表上编写更新/插入函数,就好像它们都在同一个连接中一样?
我已经阅读了一些关于创建链接表的示例,但似乎没有任何特定于oracle的示例,或者告诉我如何通过提供服务器主机名/端口/ SID /用户凭证来打开外部连接。
感谢您的帮助!
答案 0 :(得分:1)
如果您创建数据库链接,则只需通过查询TABLENAME@dblink
从不同的数据库中选择一个。
您可以使用CREATE DATABASE LINK
语句创建此类链接。
答案 1 :(得分:0)
这取决于它是一次性的还是正常的过程,如果你需要做ETL(提取,转换和加载),但是根据你解释的内容不好帮助你。
从我可以从你的解释中收集到的,你试图完成的是将一个表从一个数据库复制到另一个数据库,如果它们可以相互接触然后非常简单,你可以创建一个DBLINK({{ 3)})然后使用DBLINK为其中一个表和本地表作为接收者或发送者从任一侧执行SELECT AS INSERT。它很直接。
但是,如果它只是一次性的话,我会用expdp和impdp移动表格,因为这样会快得多,而且DB上的压力会小很多。
如果您需要维护并保持更新,为什么不只是添加DBLINK并在两侧使用它,这将取决于网络性能。
如果这有点超出您的深度,或者由于限制而无法创建dblinks,SQL Developer已经有一段时间的数据库复制选项,您可以复制单个表,但它在系统上非常重正在运行的地方(http://www.dba-oracle.com/t_how_create_database_link.htm)。