我正在尝试使用 oracle sql developer 将一个表从一个数据库复制到另一个数据库。我有用户名、密码和 SID。
copy from uname1/password1@SID1 to uname2/pwd2@SID2 insert table1 (*) using (select * from message_table);
但是我收到了connection failed
错误。
这两个数据库存在于不同的主机主机(主机名在连接属性中不同)。
该表有500万条记录,导出/导入太麻烦
最佳答案
copy
命令是一个 SQL*Plus 命令(不是 SQL Developer 命令)。如果您为 SID1 和 SID2 设置了 tnsname 条目(例如尝试 tnsping),您应该能够执行您的命令。
另一个假设是 table1 具有与 message_table 相同的列(并且这些列仅具有以下数据类型:CHAR、DATE、LONG、NUMBER 或 VARCHAR2)。此外,使用插入命令时,您需要关注主键(例如,您没有插入重复记录)。
我在 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)。
复制命令方法是旧的,它的功能没有随着新数据类型的发布而更新。有许多更当前的方法可以解决这个问题,例如 Oracle 的数据泵(甚至用于表)。
关于sql - 使用 oracle sql developer 从一个数据库复制到另一个数据库 - 连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24458616/