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的主要内容,如果未能解决你的问题,请参考以下文章