关于oracal数据库跨服务器数据迁移的问题

服务器A:life@10.136.6.249/fzcbnb 有一张user 表,
服务器B:bank@10.136.8.105/fzcbnb 有一张user_reg表,
现在使用PLSQL Deceloper工具,数据库是oracal,将user_reg表中的user_pwd字段同步到user表中的pwd字段中,两张表通过user表的user_lg_nm字段与user_reg表中的mobile字段相关联,同时还需要把user_reg表中存在但是user表中不存在的数据添加到user表中。请问各位大佬有没有合适可行的方案,指导一下。

如果两个表在一个库里,这件事情就变的很简单了对吧,所以创建一个dblink就可以实现啦;
创建了dblink你就可以在一个库中访问另一个库的表,简单来说就是建立了一个远程连接,废话不多说下面来创建一个。
在A库里执行以下语句,connect to xxx identified by xxx 填写B的数据库的用户名密码,using '' 中填写B的数据库连接:

create database link mydblink
connect to xxx identified by xxx
using '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = orcl) ) )';

创建完了好办了吧?

最好先备份一下目标表:

create table user_bak as 
 select * from user t ;

同步数据sql:

update user u set u.pwd=(select user_pwd from user_reg@mydblink r where r.user_lg_nm=u.mobile) ;

通过批量插入语句补充数据,注意查询出来的字段与相应字段要一一对应
sql:

INSERT INTO user
(相应字段) 
(查询语句);

建议创建一个零时库,把A库中的user表,和B库中user_reg表 放到这个零时库中,合并完了之后再同步过去覆盖即可。
1)同步pwd:
UPDATE user t1
SET t1.pwd = ( SELECT t2.user_pwd FROM user_reg t2 WHERE t1.user_lg_nm = t2.mobile )

2)同步user的数据(要看你以什么字段名作唯一主键了,我们这里假设你 的user_lg_nm和mobile分别是张表的唯一主键)
INSERT into user (
user_lg_nm,
field_1,
field_2,
field_3
)
SELECT
mobile,
field_1,
field_2,
field_3
FROM user_reg t1
WHERE t1.mobile not in
(SELECT user_lg_nm from user t2)