我想实现的是不同数据库中的表更新!现在我有两个数据库,SID A,SID B。
在数据库A中有张表TAB_A,在数据库B中有张表TAB_B,两张表结构完全相同,但数据不同,我现在希望做到的是能够将数据库A中的TAB_A中的数据复制到数据库B
中的TAB_B里,对TAB_B中的原有数据进行清除,使复制后TAB_B中的数据与TAB_A的数据完全一致。
请问该如何实现?
在数据库A中有张表TAB_A,在数据库B中有张表TAB_B,两张表结构完全相同,但数据不同,我现在希望做到的是能够将数据库A中的TAB_A中的数据复制到数据库B
中的TAB_B里,对TAB_B中的原有数据进行清除,使复制后TAB_B中的数据与TAB_A的数据完全一致。
请问该如何实现?
用copy命令:
copy from username/password@dbname
to username1/pw1@dbname1
append(create/insert/replace) tablename(col1,col2...)
using select....from ...;
append:添加到表上,如果tablename表不存在,则建立此表
create:如果tablename表存在,则出错
insert:添加到表中,如果tablename表不存在,则出错
replace:替换表中数据,如果tablename表不存在,则建立此表.
1) 数据库B中,建立连接数据库A的DBLINK_A;
2)数据库B中,建立存储过程
create or replace procedure pCopy
as
begin
delete from TAB_B;
insert into TAB_B( select * from TAB_A@DBLINK_A);
commit;
end;
如何进行第一步,在数据库B中,建立连接数据库A的DBLINK_A;
在第二步中又如何引用 TAB_A@DBLINK_A应该怎么写?
create database link linkname
connect to user
identified by usrpwd
using 'demona';其中
--demona为用net8 easy config创建的连接字符串
目的方数据库的init.ora文件中的global_names设为false
重新启动数据库设置才能生效
或者用sys用户执行
alter system set global_names=false;
上面写的应该比较清楚了吧