码迷,mamicode.com
首页 > 数据库 > 详细

sql server 与oracle数据互导的一种思路--sql server链接服务器

时间:2016-05-11 11:07:54      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

思路:通过在sql server数据库中添加链接服务器,可以远程查询oracle数据库的表
环境准备,安装sql server数据库,并安装好oracle驱动,在配置好tnsname文件中配置好oracle连接,本人用的sql server2008 R2,oracle11g测试,提供程序采用的OraOLEDB.Oracle(网上很多文章说这个不能成功,要选择Microsoft OLE DB Privider for oracle,可我选择这个配置成功,估计是不能同时存在两个,如果有两个,sql server默认用微软的)

tnsmae配置如下:

orcl11 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = wilsonpc3 )(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl11 )
)
)

  

首先确保sql server 所在机器通过sqlplus能够正常连接oracle

技术分享

在sql server链接服务器中添加oracle的访问,命名为Oracl

技术分享

在SQL Server Management Studio中远程查询oracle数据库

select * from openquery(Oracl,‘select EMPNO
,ENAME
,JOB
,MGR
,HIREDATE
,SAL
,COMM
,DEPTNO from emp‘) a
inner join EMP b
on a.empno=b.EMPNO
and b.EMPNO=7369

  

openquery 结果相当于返回的是一个远程的表对象,可以当做表去做sql语句的链接操作,也可对oracle数据进行更新删除操作 ,例如下面的代码是对远程的oralcle数据库进行插入操作 :

insert into openquery(Oracl,‘select EMPNO
,ENAME
,JOB
,MGR
,HIREDATE
,SAL
,COMM
,DEPTNO from emp‘)
select [EMPNO]+1000
,[ENAME]
,[JOB]
,[MGR]
,[HIREDATE]
,[SAL]
,[COMM]
,[DEPTNO]
from emp

  


删除操作:

delete from openquery(Oracl,‘select EMPNO
,ENAME
,JOB
,MGR
,HIREDATE
,SAL
,COMM
,DEPTNO from emp‘)
where empno=‘7369‘

  有了以上的操作方法,sql server与oracle数据互导有了一个基本的思路。

sql server 与oracle数据互导的一种思路--sql server链接服务器

标签:

原文地址:http://www.cnblogs.com/weiweictgu/p/5480909.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!