急,在线等!如何在两个oracle数据库之间的相同结构的两个表实现数据的同步更新,dblink已经建好了
4个回答
展开全部
数据类型都一样的么,可以考虑用触发器实现 以oracle数据库为例 有两张表test和test01 字段有id name age sal
create or replace trigger TRIG_UPDATE_TEST
after insert or delete or update on test
for each row
declare
l_id varchar2(50);
l_name varchar2(50);
l_age number;
l_sal number;
begin
if(deleting or updating) then
delete test01
where id=:old.id;
if(deleting) then
return;
end if;
end if;
l_id:=:new.id;
l_name:=:new.name;
l_age:=:new.age;
l_sal:=:new.sal;
begin
insert into test01(id,name,age,sal) values(l_id,l_name,l_age,l_sal);
end;
end TRIG_UPDATE_TEST;
再简化点就是在触发器中不声明变量,直接用:new.字段代替
哎,没分啊
create or replace trigger TRIG_UPDATE_TEST
after insert or delete or update on test
for each row
declare
l_id varchar2(50);
l_name varchar2(50);
l_age number;
l_sal number;
begin
if(deleting or updating) then
delete test01
where id=:old.id;
if(deleting) then
return;
end if;
end if;
l_id:=:new.id;
l_name:=:new.name;
l_age:=:new.age;
l_sal:=:new.sal;
begin
insert into test01(id,name,age,sal) values(l_id,l_name,l_age,l_sal);
end;
end TRIG_UPDATE_TEST;
再简化点就是在触发器中不声明变量,直接用:new.字段代替
哎,没分啊
更多追问追答
追问
begin
if(njwms.YX_上标信息表@NJ_TEST.制令号_ID= :new_value.制令号_ID and njwms.YX_上标信息表@nj_test.任务号_ID= :new_value.任务号_ID and) then
update njwms.YX_上标信息表@NJ_TEST set njwms.YX_上标信息表@NJ_TEST.是否已上标= :new_value.是否已上标;
主体是这样,其他的放不下我就删掉了,调试时在@NJ_TEST set 出现了PLS-00103的错,麻烦帮看看。(after update on WMS_NGC_上标信息表)
追答
你有没有将声明变量写在begin里了,如果有的话,调出来写到外面去,实在不行的话 表结构和要实现的功能说明发我,我帮你看看
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以使用物化视图或者使用事物快照
这两种方法都能够实现两个数据库的表数据同步
建议使用物化视图,物化视图是快照的功能升级,更为强大.
这两种方法都能够实现两个数据库的表数据同步
建议使用物化视图,物化视图是快照的功能升级,更为强大.
更多追问追答
追问
我不会物化快照,从来没弄过,上网搜了点资料,觉得不太理解都,请问您有没有关于数据同步的物化视图的代码啊?我想参考下,因为我是新手哎!
追答
资料我只有官方的英文文档,不保证你能看懂。
但你在google里搜一下还是有很多的相关文章的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
oracle 中有个物化视图。可以用来做远程的同步更新,而已不会给对方服务带来很大压力。。 没给分就只能告诉你这么多了,自己研究去吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可尝试用job执行存储过程来解决,触发器一般不保险,容易出错。
追问
因为涉及到两个数据库之间,有在存储过程里面尝试merge into,但是不行,现在抓取功能已经实现了,就差反过来更新了,我对oracle里面的这些都很陌生,弄了好几天才算明白点,麻烦能不能给出类似代码供参考啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询