gpt4 book ai didi

sql - 如何修复错误 "Catastrophic failure. Cannot fetch a row from OLE DB provider "OraOLEDB.Oracle“for linked server”

转载 作者:行者123 更新时间:2023-12-05 06:25:24 24 4
gpt4 key购买 nike

我有一个 SQL Server 2008 R2 64 位,带有使用 OraOLEDB.Oracle 提供程序连接到 Oracle 12c 的链接服务器。

当我使用 OPENQUERY 从 Oracle 链接服务器获取数据时,我收到以下错误消息:

The OLE DB provider "OraOLEDB.Oracle" for linked server reported an error. The provider reported an unexpected catastrophic failure.

Cannot fetch a row from OLE DB provider "OraOLEDB.Oracle" for linked server.

在 OraOLEDB.Oracle 提供程序选项中,选中允许 Inprocess。

只有当我查询所有数据时才会出现此错误,但如果我添加 WHERE条款WHERE ROWNUM <100限制为 99 行,就没有问题了。

环境相同的其他服务器不会出现这种情况。

我已经尝试取消选中/重新选中允许进程,但它没有用。我尝试卸载现有的 Oracle 客户端并重新安装它,但也没有用。

最佳答案

确保“用户”组对安装 Oracle 客户端的完整目录具有“读取和执行”、“列出文件夹内容”和“读取”权限。这就是为我修复的问题。

我在 SQLPlus 中也有一个查询工作正常,但是当我尝试使用链接服务器从 Toad 执行它时,我会遇到“灾难性的失败”。我也无法从 SSMS 中看到链接服务器的 View 或表。终于返璞归真了,查看Driver目录下的用户权限,到处都是。
我转到驱动器根目录下的基本文件夹,检查安全性,然后转到该选项卡中的“高级”。然后,在“高级安全设置”中点击“更改权限”。执行此操作后,会出现一个复选框“将所有子对象权限条目替换为此对象的可继承权限条目”选中该框并单击“确定

我验证了 SQLPlus 查询仍然有效,然后运行了所有失败的测试查询,现在它们都给出了结果。我现在还可以在 SSMS 中查看表和 View 。

关于sql - 如何修复错误 "Catastrophic failure. Cannot fetch a row from OLE DB provider "OraOLEDB.Oracle“for linked server”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57127775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com