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

use*_*404 23 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);
Run Code Online (Sandbox Code Playgroud)

但是我收到了connection failed错误.

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

该表有500万条记录,出口/进口过于繁琐

Pat*_*con 45

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;
Run Code Online (Sandbox Code Playgroud)

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

copy from scott/tiger@db1 to scott/tiger@db2 insert new_emp using select * from emp;
Run Code Online (Sandbox Code Playgroud)

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

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

  2. 使用您希望的复制选项标识源和目标连接. 在此输入图像描述

  3. 对于对象类型,选择表. 在此输入图像描述

  4. 指定特定的表(例如table1). 在此输入图像描述

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