ITPub博客

首页 > 数据库 > Oracle > SQL Server创建Linked Server访问Oracle

SQL Server创建Linked Server访问Oracle

原创 Oracle 作者:abstractcyj 时间:2014-02-13 15:36:28 0 删除 编辑
我的本机环境:
SQL Server 2008R2 64位
Oracle 12c 64位
SQL Server端执行以下脚本:
exec sp_addlinkedserver @server='LINK2ORACLE', @srvproduct='Oracle', @provider='OraOLEDB.Oracle', @datasrc=N'ORCL'
exec sp_addlinkedsrvlogin  @rmtsrvname=N'LINK2ORACLE',@useself=N'False',@locallogin=NULL,@rmtuser=N'scott',@rmtpassword='tiger'
还需要对访问驱动做进一步设置


并在链接服务器做如下设置:


访问方式1:select * from LINK2ORACLE..SCOTT.DEPT
注意表名,链接服务器名,用户名都应该大写
访问方式2:select * from openquery(LINK2ORACLE,'select * from emp')
暂时没有找到支持查询条件的的方式。以下SQL不能执行
declare @sql varchar(2000)
set @sql = 'select * from emp where deptno=10'
print @sql
select * from openquery(LINK2ORACLE,@sql)

需要改成动态SQL执行:
set quoted_identifier off
declare @sql nvarchar(1000),@mobile nvarchar(10)
set @deptno='10'
set @sql="select * from OPENQUERY(LINK2ORACLE,'select * from emp where deptno=''"+@deptno+"''')"
exec sp_executesql @sql



参考:
http://blogs.msdn.com/b/bindeshv/archive/2008/05/21/demystifying-sql-oracle-distributed-query-issues.aspx

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8520577/viewspace-1080915/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
曾从事java方向开发多年。近年已经转入数据库方向。主要擅长SQL优化,Oracle数据库问题诊断,Oracle备份与恢复等。服务于医药物流,医院等行业

注册时间:2010-01-26

  • 博文量
    602
  • 访问量
    1091616