现在想实现跨数据库的事务:
比如:在本地(Oracle)插入一条用户信息,同时远程SQLSERVER数据库中删除一条数据(主键相同),保证两个操作在一个事务中完成.说明一点:本地的数据库和远程的数据库的库结构是完全一样的.大家谁有这方面的经验,多多指导!!!
比如:在本地(Oracle)插入一条用户信息,同时远程SQLSERVER数据库中删除一条数据(主键相同),保证两个操作在一个事务中完成.说明一点:本地的数据库和远程的数据库的库结构是完全一样的.大家谁有这方面的经验,多多指导!!!
2、建议用存储过程来实现插入操作(存储过程中用事务);
3、前台程序再调用存储过程。
Oracle 有很多很好的特性,其中之一就是能够透明地处理分布式事务。在一个事务的范围内,可以
更新多个不同数据库中的数据。提交时,要么提交所有实例中的更新,要么一个都不提交(它们都会回滚)。
为此,我不需要另外编写任何代码:只是“提交“就行了。
Oracle 中分布式事务的关键是数据库链接(database link)。--建立database link
CREATE PUBLIC DATABASE LINK hisdb
CONNECT TO easyrep IDENTIFIED BY easyrep
USING 'repdb';--插入远程数据库表记录
insert into table sss@hisdb values( ... );--删除本地数据库表记录
delete from sss where id= ... ;
exec sp_addlinkedsrvlogin '链接名称','false',NULL,'sa','xxxxxxx'
....
建立存储过程执行 :SET XACT_ABORT ON
begin tran
insert into table1().....delete 链接名称.数据库名.dbo.table1 where .....commit tran