日期:2014-05-17  浏览次数:20874 次

!!!在线等待!!两oracle数据库对同一张表update
数据库1:sdsb 
用户名:sdsb 
用户密码:sdsb
表:myemp

数据库2:sdsb2
用户名:sdsb2 
用户密码:sdsb2
表:myemp

其中sdsb2是通过导入sdsb备份dmp文件建成的,两数据库里,表、表结构完全相同。
现在sdsb里,表myemp(empid,empname)里,empname丢数据了,我想将恢数据库(sdsb2)
中的myemp.empname update到sdsb里。
只修改empname,而不是全部删除再粘贴。因为表里有其他外键,删除不了。
而且,只手动修改这一次即可,而不需要动态更新。。。。。。

------解决方案--------------------
SQL code
建立DBLINK,来解决!

------解决方案--------------------
两个数据库有建DBLink的话直接更新就好了,update myemp o set o.ename=(select p.ename from myemp@DBLINKNAME p where o.empid=p.empid and rownum=1) where o.ename is null;
楼主既然这样问没建DBLink的可能性比较大,那就从sdsb2中把myemp的数据全部导出来放到sdsb中的临时表myemp_temp中再更新,update myemp o set o.ename=(select p.ename from myemp_temp p where o.empid=p.empid and rownum=1) where o.ename is null;