使用oracle sql developer从一个数据库复制到另一个数据库 - 连接失败

时间:2014-06-27 18:27:59

标签: sql database oracle oracle11g oracle-sqldeveloper

我正在尝试使用oracle sql developer将表从一个数据库复制到另一个数据库。我有用户名,密码和SID。

copy from uname1/password1@SID1 to uname2/pwd2@SID2 insert table1 (*) using (select * from message_table);

但是我收到connection failed错误。

这两个数据库存在于不同的主机主机中(主机名在连接属性方面不同)。

该表有500万条记录,导出/导入过于繁琐

1 个答案:

答案 0 :(得分:42)

copy命令是SQL * Plus命令(不是SQL Developer命令)。如果您为SID1和SID2设置了tnsname条目(例如尝试tnsping),您应该能够执行命令。

另一个假设是table1与message_table具有相同的列(并且列只有以下数据类型:CHAR,DATE,LONG,NUMBER或VARCHAR2)。此外,使用insert命令,您需要关注主键(例如,您没有插入重复记录)。

我在SQL * Plus中尝试了以下命令的变体(没有错误):

copy from scott/tiger@db1 to scott/tiger@db2 create new_emp using select * from emp;

执行上述语句后,我还截断了new_emp表并执行了这个命令:

copy from scott/tiger@db1 to scott/tiger@db2 insert new_emp using select * from emp;

使用SQL Developer,您可以执行以下操作来执行类似的方法来复制对象:

  1. 在工具栏上,选择工具>数据库副本。

  2. 使用您想要的复制选项标识源和目标连接。 enter image description here

  3. 对于对象类型,选择表格。 enter image description here

  4. 指定特定表格(例如table1)。 enter image description here
  5. 复制命令方法是旧的,其功能不会随着新数据类型的发布而更新。目前有许多方法可以解决这个问题,例如Oracle的数据泵(即使是表格)。