首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >作为Windows身份验证用户时出现“无法创建OLE DB访问接口实例”错误

作为Windows身份验证用户时出现“无法创建OLE DB访问接口实例”错误
EN

Stack Overflow用户
提问于 2013-01-24 19:14:13
回答 3查看 115.7K关注 0票数 21

我正在尝试从Oracle服务器上的MS SQL server运行openrowset。

当我执行以下命令时:

代码语言:javascript
复制
select * from
OPENROWSET('OraOLEDB.Oracle','srv';'user';'pass', 
'select * from table')

出现以下错误

代码语言:javascript
复制
Msg 7302, Level 16, State 1, Line 1
Cannot create an instance of OLE DB provider "OraOLEDB.Oracle" for linked server "(null)".

有人能告诉我如何在OraOLEDB.Oracle中使用openrowset吗?

我使用的是64位版本的MS SQL Server和Oracle OLEDB驱动程序。

编辑

我已经在两台运行Windows7 x64和装有MS SQL Server2008 x64的Windows Server2008 x64的机器上试用过了。两者都显示了相同的错误消息。

EN

回答 3

Stack Overflow用户

发布于 2013-01-24 20:28:19

在SQL Server企业管理器中,打开\Server Objects\Linked Servers\Providers,右键单击OraOLEDB.Oracle提供程序,选择属性,然后选中"Allow inprocess"选项。重新创建链接服务器并再次测试。

如果您没有访问SQL Server Management Studio的权限,也可以执行以下查询:

代码语言:javascript
复制
EXEC master.dbo.sp_MSset_oledb_prop N'OraOLEDB.Oracle', N'AllowInProcess', 1
票数 53
EN

Stack Overflow用户

发布于 2016-01-14 20:27:26

特别是对于错误7302,当我在注册表中查找OraOLEDB.Oracle时,我发现InprocServer32位置是错误的。

如果是这种情况,或者您在注册表中找不到该字符串,则必须安装或重新注册该组件。

( ProgID作为一对链接到CLSID )。

然后,我通过在ORAOLEDB*.dll上调用regsvr32.exe重新注册了OraOLEDB.Oracle。

仅仅重新注册并不能解决问题,我必须删除注册表项以使其指向正确的位置。或者,破解InprocServer32的位置。

现在我有错误7308,关于单线程单元;继续!

票数 2
EN

Stack Overflow用户

发布于 2018-03-14 00:42:04

除了其他很好的响应之外,我只需要授予对Oracle安装文件夹的NTFS权限。(我授予了读取访问权限)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14499977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档