如何使用链接服务器从SQL Server 2012连接到Oracle数据库?

时间:2018-07-11 11:28:59

标签: sql-server oracle

我想使用链接服务器和Oracle客户端将SQL Server 2012连接到Oracle 11g数据库。我已经在本地计算机上安装了SQL Server 2012。在客户端计算机上安装了Oracle数据库。

我的客户端共享了我的计算机的IP地址,系统ID,实例号以及Oracle数据库用户ID和密码。

我遵循了以下提到的步骤:

  1. 我已经在计算机上安装了SQL Server 2012
  2. 我已经在计算机上安装了Oracle客户端11g
  3. 我还安装了ODAC _32bit的ODT
  4. 我用以下脚本步骤创建了一个链接服务器

    exec master.dbo.sp_MSset_oledb_prop 'ORAOLEDB.Oracle', N'AllowInProcess', 1 
    
    exec master.dbo.sp_MSset_oledb_prop 'ORAOLEDB.Oracle', N'DynamicParameters', 1
    
    exec sp_addlinkedserver N'MyOracle', 'Oracle', 'ORAOLEDB.Oracle', N'//HOSTNAME/TRQ', N'FetchSize=2000', ''
    
    exec master.dbo.sp_serveroption @server=N'MyOracle', @optname=N'rpc out', @optvalue=N'true'
    
    exec sp_addlinkedsrvlogin @rmtsrvname='MyOracle', @useself=N'FALSE', @rmtuser=N'ORACLE USERNAME', @rmtpassword='ORACLEPASSWORD' 
    

当我执行以下查询时出现错误:

  

链接服务器“ MyOracle”的OLE DB提供程序“ ORAOLEDB.Oracle”   返回消息“ ORA-12154:TNS:无法解析连接   指定的标识符”。       Msg 7303,第16级,状态1,第9行       无法为链接服务器“ MyOracle”初始化OLE DB访问接口提供程序“ ORAOLEDB.Oracle”的数据源对象。

     MyOracle中的

exec(“从双选中选择1 a”)

1 个答案:

答案 0 :(得分:0)

1-将ODAC目录和ODAC \ Bin添加到路径   (使用SET PATH命令检查)

2-确保您的Oracle和SQL版本是位兼容的(两者都是32位或都是64位)

3-确保ODAC与它们位兼容。

4-如果您的Oracle实例的端口不是1521,请在主机IP之后添加它: