SQL Server2005访问ORACLE(始终无法完成)

时间:2021-07-13 17:11:55
我想实现SQL Server2005访问ORACLE,按照网上介绍的方法进行了一番配置,结果始终报错,拜托高手帮忙看看原因

tnsnames.ora如下:
ORCL_WIN2003-WJ =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.32.103)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = orcl)
      (SERVER = DEDICATED)
    )
  )

1》 在DOS模式下运行sqlplus能登陆,这样确认了ORACLE客户端安装无误。 

2》 确认Distributed Transaction Coordinator服务已启动。

3》 打开SQL SERVER Management Studio,服务器对象(右键)-新建连接服务器。

4》 链接服务器:写上链接服务器的名字,WIN2003-WJ(WIN2003-WJ是ORACLE服务器的机器名)

5》 服务器类型,选择其他数据源

6》 访问接口:选择 Microsoft OLE DB Provider for Oracle

7》 产品名称:写上 Oracle(这个我随便写的)

8》 数据源:写上tnsnames.ora 文件中配置的服务名:ORCL_WIN2003-WJ

9》 访问接口字符串:user id=bpmmes;password= bpmmes

10》在选择安全性选项页,使用此安装上下文建立连接:

1:远程登录:bpmmes
2: 使用密码:bpmmes

11》确定

然后就报错了

26 个解决方案

#1


找obuntu

#2


什么是“obuntu”?

#3


很急的呀

#4


引用 2 楼 apple_wing 的回复:
什么是“obuntu”?
not ubuntu ,is a linux os.
obuntu is a man !

#5


You can find him in the CSDN.

#6


报什么错???

#7


标题: Microsoft SQL Server Management Studio
------------------------------

"链接服务器已创建但连接测试失败。是否要保留该链接服务器?"

------------------------------
其他信息:

执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)

------------------------------

无法初始化链接服务器 "ORACLE-TEST" 的 OLE DB 访问接口 "MSDAORA" 的数据源对象。
链接服务器"ORACLE-TEST"的 OLE DB 访问接口 "MSDAORA" 返回了消息 "未找到 Oracle 客户端和网络组件。这些组件是由 Oracle 公司提供的,是 Oracle 8i 版 (或更高) 客户软件安装的一部分。

在安装这些组件之前,将无法使用此提供程序。"。 (Microsoft SQL Server,错误: 7303)

有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.4035&EvtSrc=MSSQLServer&EvtID=7303&LinkId=20476

------------------------------
按钮:

是(&Y)
否(&N)
------------------------------

#8


有没有哪位老大过来帮帮忙啊

#9


ORACLE和MSSQL版本呢?

我在帮你喊他。

#10


ORACLE 10g
WINDOWS 2003
SQLServer 2005

#12


无法初始化链接服务器 "%2!" 的 OLE DB 访问接口 "%1!" 的数据源对象。

MSSQL都没有访问到数据源,检查一下。

#13


我就是按照第二个链接做的,另外:
“MSSQL都没有访问到数据源,检查一下”------检查哪方面?我能想到的都检查了

#14


Try~

--
EXEC sp_addlinkedserver   'OraLink',  'Oracle',  'MSDAORA',  'ORCL_WIN2003-WJ'
EXEC sp_addlinkedsrvlogin 'OraLink', 'FALSE',NULL, 'bpmmes', 'bpmmes'

select * from OraLink..HR.EMPLOYEES


其他详细错误,请参考:
http://support.microsoft.com/kb/280106/zh-cn

你这情况,像是这个问题:http://support.microsoft.com/kb/259959/

#15


引用 9 楼 claro 的回复:
ORACLE和MSSQL版本呢?

我在帮你喊他。


SQL Server2005访问ORACLE(始终无法完成)

#16


谢谢obuntu,我按照你的语句运行了一下,不过还是不行,提示如下:

链接服务器"OraLink"的 OLE DB 访问接口 "MSDAORA" 返回了消息 "未找到 Oracle 客户端和网络组件。这些组件是由 Oracle 公司提供的,是 Oracle 8i 版 (或更高) 客户软件安装的一部分。

在安装这些组件之前,将无法使用此提供程序。"。
消息 7303,级别 16,状态 1,第 4 行
无法初始化链接服务器 "OraLink" 的 OLE DB 访问接口 "MSDAORA" 的数据源对象。

#17


未找到 Oracle 客户端和网络组件

认不到安装的ORACLE客户端。。
这边有这个的说明:http://support.microsoft.com/kb/259959/

#18


我试了这个,其中1;3;4;5;6都被排除了,2和7没太看懂
还是不行,郁闷啊

#19


你的客户端是按照整套ORACLE软件,还只是单纯的ORACLE客户端呢?

#20


单纯的ORACLE客户端

#21


引用 20 楼 apple_wing 的回复:
单纯的ORACLE客户端


有点奇怪,没用过单纯的ORACLE客户端,没啥发言权; :)
但我自己配置了下,通过上述脚本,是可以配置成功的。
你可以重装下客户端,再配下TNS看看。或者装下整套的。

#22


我不会用脚本,是使用图形化的那个配置工具

#23


 我想起一个特殊的地方,我这边的SQLSERVER2005是用的域帐号登陆的,不是SA,会跟这个有影响吗?
因为这个SQLSERVER2005是服务器,我是不能做这个改动的,所以没办法尝试

#24


引用 23 楼 apple_wing 的回复:
我想起一个特殊的地方,我这边的SQLSERVER2005是用的域帐号登陆的,不是SA,会跟这个有影响吗?
因为这个SQLSERVER2005是服务器,我是不能做这个改动的,所以没办法尝试


没有关系的。。
你现在的问题是MSDAORA认不到你安装的ORACLE 客户端

#25


为什么会这样呢?我在其他网页上看到貌似SQLSERVER和ORACLE区分64位或32位,会不会跟这个有关?

#26


问题已解决,谢谢obuntu!
以下是网上查到的解决办法:
------------------------------------------------------------------------------------
未找到Oracle客户端和网络组件”问题解决     我在Oracle 9.2下用ASP.net连接Oracle数据库提示如下错误:“System.Exception: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater”的错误。或提示:“未找到Oracle客户端和网络组件。这些组件是由Oracle公司提供的,是Oracle8i版(或更高)客户软件安装的一部分。在安装这些组件之前,将无法使用此提供程序。”
     baidu了一下!惊奇的发现了两种解决的方法,我试验了一下,都可以解决这个问题:

     看起来就是读取和运行权限的问题,尤其是在NTFS下这个问题可能会经常遇到。

第一种方法:

     找到Oracle 9i 客户端的安装目录,我的是d:\oracle,右键属性-〉安全-〉选择上面的用户Authenticated Users,将权限的读取及运行(默认应该就是选中的),将选中点击为不选中(就是勾去掉),然后在点击选中,然后应用,确定,然后重新启动系统。看起来是没有进行操作,但实际上还是有作用的,原因不清楚,有人说是Oracle的BUG。

第二种方法:

     找到Oracle 9i 客户端的安装目录,我的是d:\oracle,右键属性-〉安全-〉添加Everyone这个用户,并赋给完全控制的权限,然后应用,确定,然后重新启动系统。

     Oracle 10g 和 Oracle 9i有同样的问题。

     提示: 修改权限要根据安装目录结构的不同,调整不同目录的权限。比如我在9i下安装的目录不是默认的,而是d:\Oracle,所以修改oracle的属性就可以了。但是安装Oracle 10g的目录是默认的d:\Oracle\product\10.1.0\Client_1,但是我修改Oracle目录发现权限只继承到10.1.0目录,要直接修改Client_1目录的属性才能解决这个问题。

#1


找obuntu

#2


什么是“obuntu”?

#3


很急的呀

#4


引用 2 楼 apple_wing 的回复:
什么是“obuntu”?
not ubuntu ,is a linux os.
obuntu is a man !

#5


You can find him in the CSDN.

#6


报什么错???

#7


标题: Microsoft SQL Server Management Studio
------------------------------

"链接服务器已创建但连接测试失败。是否要保留该链接服务器?"

------------------------------
其他信息:

执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)

------------------------------

无法初始化链接服务器 "ORACLE-TEST" 的 OLE DB 访问接口 "MSDAORA" 的数据源对象。
链接服务器"ORACLE-TEST"的 OLE DB 访问接口 "MSDAORA" 返回了消息 "未找到 Oracle 客户端和网络组件。这些组件是由 Oracle 公司提供的,是 Oracle 8i 版 (或更高) 客户软件安装的一部分。

在安装这些组件之前,将无法使用此提供程序。"。 (Microsoft SQL Server,错误: 7303)

有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.4035&EvtSrc=MSSQLServer&EvtID=7303&LinkId=20476

------------------------------
按钮:

是(&Y)
否(&N)
------------------------------

#8


有没有哪位老大过来帮帮忙啊

#9


ORACLE和MSSQL版本呢?

我在帮你喊他。

#10


ORACLE 10g
WINDOWS 2003
SQLServer 2005

#11


#12


无法初始化链接服务器 "%2!" 的 OLE DB 访问接口 "%1!" 的数据源对象。

MSSQL都没有访问到数据源,检查一下。

#13


我就是按照第二个链接做的,另外:
“MSSQL都没有访问到数据源,检查一下”------检查哪方面?我能想到的都检查了

#14


Try~

--
EXEC sp_addlinkedserver   'OraLink',  'Oracle',  'MSDAORA',  'ORCL_WIN2003-WJ'
EXEC sp_addlinkedsrvlogin 'OraLink', 'FALSE',NULL, 'bpmmes', 'bpmmes'

select * from OraLink..HR.EMPLOYEES


其他详细错误,请参考:
http://support.microsoft.com/kb/280106/zh-cn

你这情况,像是这个问题:http://support.microsoft.com/kb/259959/

#15


引用 9 楼 claro 的回复:
ORACLE和MSSQL版本呢?

我在帮你喊他。


SQL Server2005访问ORACLE(始终无法完成)

#16


谢谢obuntu,我按照你的语句运行了一下,不过还是不行,提示如下:

链接服务器"OraLink"的 OLE DB 访问接口 "MSDAORA" 返回了消息 "未找到 Oracle 客户端和网络组件。这些组件是由 Oracle 公司提供的,是 Oracle 8i 版 (或更高) 客户软件安装的一部分。

在安装这些组件之前,将无法使用此提供程序。"。
消息 7303,级别 16,状态 1,第 4 行
无法初始化链接服务器 "OraLink" 的 OLE DB 访问接口 "MSDAORA" 的数据源对象。

#17


未找到 Oracle 客户端和网络组件

认不到安装的ORACLE客户端。。
这边有这个的说明:http://support.microsoft.com/kb/259959/

#18


我试了这个,其中1;3;4;5;6都被排除了,2和7没太看懂
还是不行,郁闷啊

#19


你的客户端是按照整套ORACLE软件,还只是单纯的ORACLE客户端呢?

#20


单纯的ORACLE客户端

#21


引用 20 楼 apple_wing 的回复:
单纯的ORACLE客户端


有点奇怪,没用过单纯的ORACLE客户端,没啥发言权; :)
但我自己配置了下,通过上述脚本,是可以配置成功的。
你可以重装下客户端,再配下TNS看看。或者装下整套的。

#22


我不会用脚本,是使用图形化的那个配置工具

#23


 我想起一个特殊的地方,我这边的SQLSERVER2005是用的域帐号登陆的,不是SA,会跟这个有影响吗?
因为这个SQLSERVER2005是服务器,我是不能做这个改动的,所以没办法尝试

#24


引用 23 楼 apple_wing 的回复:
我想起一个特殊的地方,我这边的SQLSERVER2005是用的域帐号登陆的,不是SA,会跟这个有影响吗?
因为这个SQLSERVER2005是服务器,我是不能做这个改动的,所以没办法尝试


没有关系的。。
你现在的问题是MSDAORA认不到你安装的ORACLE 客户端

#25


为什么会这样呢?我在其他网页上看到貌似SQLSERVER和ORACLE区分64位或32位,会不会跟这个有关?

#26


问题已解决,谢谢obuntu!
以下是网上查到的解决办法:
------------------------------------------------------------------------------------
未找到Oracle客户端和网络组件”问题解决     我在Oracle 9.2下用ASP.net连接Oracle数据库提示如下错误:“System.Exception: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater”的错误。或提示:“未找到Oracle客户端和网络组件。这些组件是由Oracle公司提供的,是Oracle8i版(或更高)客户软件安装的一部分。在安装这些组件之前,将无法使用此提供程序。”
     baidu了一下!惊奇的发现了两种解决的方法,我试验了一下,都可以解决这个问题:

     看起来就是读取和运行权限的问题,尤其是在NTFS下这个问题可能会经常遇到。

第一种方法:

     找到Oracle 9i 客户端的安装目录,我的是d:\oracle,右键属性-〉安全-〉选择上面的用户Authenticated Users,将权限的读取及运行(默认应该就是选中的),将选中点击为不选中(就是勾去掉),然后在点击选中,然后应用,确定,然后重新启动系统。看起来是没有进行操作,但实际上还是有作用的,原因不清楚,有人说是Oracle的BUG。

第二种方法:

     找到Oracle 9i 客户端的安装目录,我的是d:\oracle,右键属性-〉安全-〉添加Everyone这个用户,并赋给完全控制的权限,然后应用,确定,然后重新启动系统。

     Oracle 10g 和 Oracle 9i有同样的问题。

     提示: 修改权限要根据安装目录结构的不同,调整不同目录的权限。比如我在9i下安装的目录不是默认的,而是d:\Oracle,所以修改oracle的属性就可以了。但是安装Oracle 10g的目录是默认的d:\Oracle\product\10.1.0\Client_1,但是我修改Oracle目录发现权限只继承到10.1.0目录,要直接修改Client_1目录的属性才能解决这个问题。