sql server连接Oracle方法

(一)在SQL Server所在服务器中安装Oracle客户端程序,并设定好TNS

(二)在SQL Server中添加Link Server,设置方法如下:

 

设置安全权限如下:

以上设置也可以透过执行sql server的存储过程实现。

sp_addlinkedserver & sp_addlinkedsrvlogin

(三)连接建立完成后,就可以执行查询语句了,查询的示例如下:

/*查询*/

select * from openquery(TESTORA, 'SELECT t01,t02 FROM tex_file') 

/*插入数据*/ 

INSERT OPENQUERY(TESTORA, 'select t01 from tex_file')
select 'testabc'

/*更新数据*/

update OPENQUERY(TESTORA, 'select t01 from tex_file') set t01='hellowo'
where t01='testabc'

/*删除数据*/

delete from OPENQUERY(TESTORA, 'select t01 from tex_file')
where t01='hellowo'

(四)到此基本上无什么问题了,但是把这些语句放在sql server的触发器中的时候,问题产生了。

放入触发器中之后,一开始提示:“服务器 'XXXXX' 上的 MSDTC 不可用”,于是打开MSDTC服务(方法:切换到cmd窗口,运行net start msdtc,或者到控制台的服务里面启动DTC服务),不再提示这个错误,而是提示 “MSDTC不能启动分布式事务”。Oh my God,还是不行,于是再次去问谷歌,发现是因为微软提供的驱动不支持分布式事务,于是参照网上的方法(点此查看原始解决方案),修改注册表。

(五)修改注册表后,奇迹发生了。

修改的方法如下:

好了,运行regedit修改注册表,依照上图方法修改,注册表有两处需要更改或者增加,修改完成后重启电脑,以上问题解决。

如果要在其他电脑设定,可以将注册表这两个分支导出,然后在另外的电脑直接汇入,省去了设置的麻烦。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值