Oracle 利用触发器在2个数据库之间同步进行update

我有2个数据库DB1和DB2,DB1中有表:学生(字段:学号,姓名,地址),DB2中有表:成绩(字段:学号,平时成绩,考试成绩),我想写一个触发器:当我update DB1中的学号时,DB2里面的学号也会同步update,请问应该如何写这个触发器?

--先在2个DB之间建立dblink,然后可参考以下代码进行编写:
--说明:一般的更新都是增删改3个操作,我这只写了改的操作给你作参考。

Create Trigger tri_testabc
After Update On tb_student_db1 For Each Row
Declare

Begin
If updating Then
Update tb_score_db2@dblink Set
tb_score_db2.stu_id = :New.stu_id
Where tb_score_db2.tud_id = Old.sut_id;
End If;

Exception
When Others Then
--异常处理
Null;

End;
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-09-06
创建一个数据库链接,然后就能像处理一个库里的各个表来进行UPDATE

ORACLE数据库中的两张表怎么同步跟新?
create or replace trigger buid_mend_manager after insert or update or delete <\/SPAN> on TMP_EIC_MEND <\/SPAN> referencing old as old_value <\/SPAN> new as new_value <\/SPAN> for each row <\/SPAN>begin <\/SPAN> if inserting then <\/SPAN> ...

oracle如何实现两个用户下所有数据的同步?
1、把test2的所有表的增删改权限授权给test1;2、在test1用户的表建立增删改触发器,当表数据发生变化,同样操作test2用户相对表的操作

如何在修改数据库其中一个表的时候会同时修改另外一个表数据?
写个触发器就可以实现,每次往表2新增数据时,都会触发修改表1的数据,下面是oracle触发器,你可以参照下:create or replace trigger trigger_test after insert on 表2 for each row declare integrity_error exception;errno integer;errmsg char(200);dummy integer;found boolean;begin if...

如何实现Oracle数据库之间的数据同步
DataGurd:主要备库的方式,就是数据库对数据库的备份方式,主要是解决容灾的。流复制:主要是利用ORACLE的归档日志,进行增量备份来实现的,不仅可以配置只复制某些表,还可以配置仅复制某些表上的ddl或dml。可以复制到表,用户,数据库级别。高级复制:主要是基于触发器的原理来触发数据同步的,因此,高级...

oracle触发器问题,怎么把insert,update,insert 写入同一触发器,参考下 ...
你是要把插入和更新放到一个触发器里面对吗?这么写就行了:create or replace trigger updatedb_TEST_STURECORD before insert or update on TEST_STURECORD for each row begin if inserting then update TEST_STURECORD@DBLINKTEST set STUR_ID =:New.STUR_ID, stur_where=:New.stur_where;en...

怎么实现两个数据库的同步
少量数据库同步可以采用触发器实现,同步单表即可。 三、配置过程中可能出现的问题 在sql server 2000里设置和使用数据库复制之前,应先检查相关的几台sql server服务器下面几点是否满足: 1、mssqlserver和sqlserveragent服务是否是以域用户身份启动并运行的(.\\administrator用户也是可以的) 如果登录用的是本地系统帐户lo...

oracle update 多个字段更新性能
在 Oracle 数据库中,当需要同时更新多个字段时,可以采用以下方法来提高性能:1.使用单条 SQL 语句更新多个字段:通过一条 SQL 语句同时更新多个字段可以减少数据库服务器和客户端之间的通信量,从而提高性能。示例语句如下:UPDATE table_name SET column1=value1,column2=value2,column3=value3 WHERE ...

如何实现同步两个服务器的数据库?
同步两个SQLServer数据库\\x0d\\x0a\\x0d\\x0a如何同步两个sqlserver数据库的内容?程序代码可以有版本管理cvs进行同步管理,可是数据库同步就非常麻烦,只能自己改了一个后再去改另一个,如果忘记了更改另一个经常造成两个数据库的结构或内容上不一致.各位有什么好的方法吗?\\x0d\\x0a\\x0d\\x0a一、分发与复制\\...

Oracle 数据库中,列之间计算的问题!最好给个列之间混合运算的例子...
两种处理方式:1、创建一个触发器。 INSERT 或者 UPDATE 的时候。计算 平均分=(语文+数学+英语)\/3 2、创建一个视图 CREATE VIEW v_test AS SELECT 学号, 语文, 数学, 英语,(语文+数学+英语) \/ 3 AS 平均分 FROM 成绩表 ...

请教高手!oracle触发器与dblink的问题
那就可能是触发器的限制了。因为触发器涉及到事务处理,你通过触发器来将数据同步到远程数据库的做法不太可行:如果连接出问题,那么本地的数据也得不到更新。

相似回答