【问题标题】:Unable to call Oracle Stored Procedures from SSRS Reporting Manager无法从 SSRS 报告管理器调用 Oracle 存储过程
【发布时间】:2018-06-11 14:05:26
【问题描述】:

我们最近将数据库从 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 提供程序并重新启动报告服务。但对我来说没有任何结果。

请帮我解决这个错误。

【问题讨论】:

  • 您是否尝试过在 SQL Developer 中运行 PL\SQL 查询?
  • 是的,我试过了。它按预期工作。
  • 报表是否在您的开发机器上运行?
  • 是的,我试过了。它返回一个错误,指出 ORA 010301-Insufficient Privileges。我还检查了 Privileges,但对我来说一切都很好,因为在 Oracle 11g 版本的数据库中应用了相同的 Privileges
  • 在SQL Developer中,当它运行成功时,你在哪个账户执行SQL?如果错误表明这是一个权限错误,则它必须是您正在使用的帐户。

标签: reporting-services ssrs-2012 oracle12c


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多