如何通过dblink truncate远程数据库上的表
1个回答
展开全部
oracle中一个数据库表通过另一个数据表的数据同步最新数据采用dblink的方法:1.首先创建一个dblink,可以访问远程数据库
2.在本地创建一个快照,映射远程数据表,当远程数据表有变化时,会反应到快照中.
3.由于快照类似于视图表,所以在本地为快照创建一个触发器,当快照有变化时,会触发相应事件.
4.在触发器中写同步数据的代码。
以下是触发器代码:
createorreplacetriggerTRI_test_user_AFR
afterinsertorupdateordeleteonsn_test_user
foreachrow
begin
if deleting then
deletefromtest_userwhereid=:old.id;
endif;
if inserting then
insertintotest_user(id,name,age)
values(:new.id,:new.name,:new.age);
endif;
if updating then
updatetest_usersetname=:new.name,age=:new.agewhereid=:old.id;
endif;
endTRI_test_user_AFR;
2.在本地创建一个快照,映射远程数据表,当远程数据表有变化时,会反应到快照中.
3.由于快照类似于视图表,所以在本地为快照创建一个触发器,当快照有变化时,会触发相应事件.
4.在触发器中写同步数据的代码。
以下是触发器代码:
createorreplacetriggerTRI_test_user_AFR
afterinsertorupdateordeleteonsn_test_user
foreachrow
begin
if deleting then
deletefromtest_userwhereid=:old.id;
endif;
if inserting then
insertintotest_user(id,name,age)
values(:new.id,:new.name,:new.age);
endif;
if updating then
updatetest_usersetname=:new.name,age=:new.agewhereid=:old.id;
endif;
endTRI_test_user_AFR;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询