2017-01-16 417 views

回答

0

我找到了this blogger发布的解决方案。试试看!

Sysinternals/Mark Russinovich的这个工具是最好的,我唯一的遗憾就是没有早些发布它,而不是去淘谷歌和疯了。 我已经限制Procmon只是sqlservr.exe,因为它是加载/处理提供程序而不是ssms.exe的SQL服务本身。还值得注意的是,sqlservr.exe是一个64位进程,而管理工作室仍然只是32位。由于服务器服务正在加载提供程序,并且服务进程为64位,因此提供程序也必须以64位格式提供。

ODAC112021Xcopy_x64.zip已安装到C:\ Oracle。 然而Procmon告诉我的是,sqlservr试图在任何文件夹中找到oci.dll,但他的! (它遍历%Path%sysvariable)。当它终于放弃寻找dll时,SQL服务处于不稳定状态,停止服务的唯一方法是通过taskmgr/procexp将其终止。 很明显,我可以看到“xcopy”部署 - 虽然没有给我任何错误消息 - 它也没有设置PATH变量! 这就是这篇文章的真正内容......将C:\ Oracle和C:\ Oracle \ Bin添加到Path变量,或者它可能是在过程的早期使用调查工具而不是依赖于搜索引擎技能的 。

sqlservr.exe现在可以找到相关的DLL。根目录中的OCI.DLL和Bin子文件夹中的OraOLEDB11.DLL。 在这一点上,我可以查询数据库!如果你按照上面的步骤操作并且仍然出现相同的错误,我强烈建议使用Procmon.exe,而不是跳到下一个搜索结果。

完整的文章是here与更多的细节。

+0

试着用你自己的话来解释为什么这些链接工作,不管你是否测试过,而不是复制和粘贴它们。 –

相关问题