首页 > 解决方案 > 无法从 SSRS 报告管理器调用 Oracle 存储过程

问题描述

我们最近将数据库从 Oracle 11g 升级到了 Oracle 12c。升级后,在测试报告服务管理器的报告时,我遇到了一个奇怪的问题,即,无论何时调用 Oracle 存储过程,它都会返回一个错误说

数据集 xxxxxxxx 的查询执行失败

我还检查了 Windows 日志以检查确切的错误是什么,日志显示如下

错误:引发 Microsoft.ReportingServices.ReportProcessing.ProcessingAbortedException:Microsoft.ReportingServices.ReportProcessing.ProcessingAbortedException:报告处理期间发生错误。

---> Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:数据集“xxxxxxx”的查询执行失败。

---> System.Data.OracleClient.OracleException:ORA-06550:第 1 行,第 7 列:
PLS-00306:调用“xxxxx”时参数的数量或类型错误
ORA-06550:第 1 行,第 7 列:
PL/ SQL:语句被忽略

我检查了是否传递了错误数量的参数,但过程只包含一个输入值和一个输出值,并且输入值必须从报告中传递。

我搜索了解决方案,我可以看到许多面临相同错误的问题。我尝试了所有方法,例如为 oracle 12c 版本安装 odp.net 提供程序并重新启动报告服务。但对我来说没有任何结果。

请帮我解决这个错误。

标签: reporting-servicesssrs-2012oracle12c

解决方案


这可能是 Kerberos 和双跳问题。您需要在报告服务服务器上启用 Kerberos 委派并设置 SPN,以便 Kerberos 可以传递运行报告的用户的凭据,而不是 SSRS 的服务帐户。

更多细节可以在这里找到:https ://serverfault.com/q/378096/85935


推荐阅读