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,您可以执行以下操作来执行类似的方法来复制对象:
在工具栏上,选择"工具">"数据库副本".
使用您希望的复制选项标识源和目标连接.

对于对象类型,选择表.


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