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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
参考技术A 创建一个数据库链接,然后就能像处理一个库里的各个表来进行UPDATE

利用Kettle进行SQLServer与Oracle之间的数据迁移实践

Kettle简介

Kettle(网地址为http://kettle.pentaho.org/)是一款国外开源的ETL工具,纯java编写,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。 Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

Windows环境下的安装与配置

1、安装并配置JDK。

2、下载kettle压缩包,因kettle为绿色软件,解压缩到任意本地路径即可。

SQLServer到Oracle的数据迁移实践

前置工作:在Oracle中按需建立目标数据表。

1、配置数据库连接依赖JAR包。将jtds-1.3.1.jar(SQLServer数据库连接依赖)和ojdbc14-10.2.0.4.0.jar(Oracle数据库连接依赖)拷贝到程序下面的lib文件夹。由于kettle没有将所有数据库的Driver文件集成,所以如果想连接指定的数据库,需要自己下载JDBC驱动,放入指定的lib目录下。添加完JDBC驱动后,必须重启kettle才能正确加载驱动。

2、双击运行spoon.bat,启动Kettle 。

3、新建一个转换,命名为SQLServer2Oracle 。

4、建立SQLServer连接。

技术图片

5、建立Oracle连接。

技术图片

6、核心对象-->输入-->表输入,拖入一个“表输入”节点至转换图形视图;编辑“表输入”节点属性,选择SQLServer连接,配置执行SQL。

技术图片

7、核心对象-->转换-->字段选择,拖入一个“字段选择”节点至转换图形视图;添加“表输入”至“字段选择”的连接;获取在上一步所选择的字段。

技术图片

8、核心对象-->输出-->表输出,拖入一个“表输出”节点至转换图形视图;添加“字段选择”至“表输出”的连接;编辑“表输出”节点属性,选择Oracle连接,配置目标用户、目标表、字段映射。

技术图片

配置好的转换视图如下:

技术图片

9、运行上述步骤已经配置好的转换。执行完毕后,检查核对,已经将SQLServer中的数据同步到Oracle中了。

以上是关于Oracle 利用触发器在2个数据库之间同步进行update的主要内容,如果未能解决你的问题,请参考以下文章

利用OGG实现Oracle和MySQL之间的双向同步

利用OGG实现Oracle和MySQL之间的双向同步

赵强老师利用数据库触发器实现数据的同步

愚公oracle数据库同步工具

在 Oracle 中保持表同步

Oracle 11G GoldenGate实现Windows与Windows之间的单向同步