Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2012 “OLE DB提供程序”;OraOLEDB.Oracle“;“用于链接服务器”;PROD";报告了一个错误。_Sql Server 2012 - Fatal编程技术网

Sql server 2012 “OLE DB提供程序”;OraOLEDB.Oracle“;“用于链接服务器”;PROD";报告了一个错误。

Sql server 2012 “OLE DB提供程序”;OraOLEDB.Oracle“;“用于链接服务器”;PROD";报告了一个错误。,sql-server-2012,Sql Server 2012,Msg 7399,级别16,状态1,第1行链接服务器“PROD”的OLE DB提供程序“OraOLEDB.Oracle”报告了一个错误。提供程序报告了意外的灾难性故障。Msg 7330,级别16,状态2,第1行无法从链接服务器“PROD”的OLE DB提供程序“OraOLEDB.Oracle”中获取行 由于我禁用了“Allow InProcess”并再次启用,问题仍然是一样的 我找到了一个由发布的解决方案。试试看 Sysinternals/Mark Russinovich提供的这个工具是最好的,

Msg 7399,级别16,状态1,第1行链接服务器“PROD”的OLE DB提供程序“OraOLEDB.Oracle”报告了一个错误。提供程序报告了意外的灾难性故障。Msg 7330,级别16,状态2,第1行无法从链接服务器“PROD”的OLE DB提供程序“OraOLEDB.Oracle”中获取行


由于我禁用了“Allow InProcess”并再次启用,问题仍然是一样的

我找到了一个由发布的解决方案。试试看

Sysinternals/Mark Russinovich提供的这个工具是最好的,那天我唯一的遗憾是没有早点发布它,而是搜索谷歌,然后发疯。 我将Procmon限制为仅使用sqlservr.exe,因为加载/处理提供程序的是SQL服务本身,而不是ssms.exe。另外值得注意的是,sqlservr.exe是一个64位的进程,而managementstudio仍然只有32位。由于服务器服务正在加载提供程序,且服务进程为64位,因此提供程序也必须以64位格式可用

ODAC11221xcopy_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,而不是跳转到下一个搜索结果


全文包含更多细节。

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