加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

Oracle WITH Clause导致SSRS问题?

发布时间:2021-01-26 01:20:53 所属栏目:站长百科 来源:网络整理
导读:我正在使用SSRS(2k5)来报告来自oracle的数据.该报告的目的是对数据进行大约100次检查(完成后)以查看是否输入正确(并且我们的软件按照预期的方式运行).为了实现这一点,我创建了一个包含和管道功能的实现WITH子句.大致在Oracle中构建的包看起来像这样: WITH A

我正在使用SSRS(2k5)来报告来自oracle的数据.该报告的目的是对数据进行大约100次检查(完成后)以查看是否输入正确(并且我们的软件按照预期的方式运行).为了实现这一点,我创建了一个包含和管道功能的实现WITH子句.大致在Oracle中构建的包看起来像这样:

WITH A as(从X中选择东西),B as(从Y join X中选择东西),C as(从Z join X中选择东西)
Subquery1
联盟
Subquery2
联盟

Subquery100

我使用Table()直接从SSRS调用此包函数.一切都很好.但是,如果我在当天晚些时候运行它,我会收到一条错误消息:

ORA-32036: unsupported case for inlining of query name in WITH clauSEORA-6512: at “[function name]”

但是,如果我打开Oracle SQLDeveloper并运行该函数然后返回到SSRS,则everthing运行正常(暂时).

我意识到它可能对我的嵌套WITH子句感到生气,但是什么会导致它工作一段时间,然后很快失败?请注意,它始终适用于SQLDeveloper.

提前感谢你的帮助!

解决方法

您的问题是您使用(在SSRS内部)连接到Oracle的客户端版本(或可能是客户端中的驱动程序)可能不支持WITH子句中的函数调用.

在9i客户端中,WITH子句没有完全正常运行,我怀疑哪个客户端连接到Oracle(即使它不是9i客户端)仍然没有完全正常运行.

你必须要么:

1)在SSRS中升级Oracle客户端(或驱动程序)(如果可能的话)
2)升级您的SSRS版本(如果它不是最新版本,但请检查是否值得先进行升级)
3)重新编写没有WITH子句的查询,而是使用内联视图.

另一种选择是创建所需数据的DB视图,并在select语句中引用它们,这不是理想的,但可能是一个选项.

希望能帮助到你…

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!