ora-00939 报告服务中的错误,s-s-rS

Posted

技术标签:

【中文标题】ora-00939 报告服务中的错误,s-s-rS【英文标题】:ora-00939 error in reporting services, s-s-rS 【发布时间】:2009-02-23 16:27:15 【问题描述】:

我有一个 s-s-rS 报告,Oracle 是我的后端,我正在使用以下查询来查询我的第二个参数的数据集。

select distinct  X
from  v_stf_sec_user_staffing_center usc
where usc.center_group_id in  (
 select distinct center_group_id from  V_T_STAFFING_CENTER_GROUP scg
where  INSTR(','||REPLACE(:PI_REGION_LIST,' ')||',', ','||scg.group_abbreviation||',') > 0)
and usc.nt_user_name=:PI_NT_USER_NAME

这里PI_REGION_LIST是一个字符串类型的多值参数。 而PI_NT_USER_NAME 是默认的字符串值参数

当我尝试在“数据”选项卡中手动执行时,此查询工作正常,也在 Oracle 工具中。但是当我在 s-s-rS 中运行报告并为参数PI_REGION_LIST 选择超过 3 个值时,报告会在此数据集上引发错误

ora-00939 错误,函数参数过多。

我无法找出这里的错误。

请帮我出出主意。

【问题讨论】:

【参考方案1】:

REPLACE 函数接受三个字符串参数,最后一个是可选的。

MS documentation 表示多值参数有以下限制 "查询必须使用 IN 子句来指定参数。"

如果您实际上不需要执行 REPLACE 来消除空格,您应该可以执行类似的操作

WHERE scg.group_abbreviation in (:PI_REGION_LIST)

【讨论】:

以上是关于ora-00939 报告服务中的错误,s-s-rS的主要内容,如果未能解决你的问题,请参考以下文章

在报告服务器中运行报告时出现 s-s-rS 错误

s-s-rS 报告服务 UAC 错误,已经尝试了一切

MVC 错误中的 s-s-rS 报告查看器 (ReportViewerForMVC)

s-s-rS 2008 报告管理器错误

s-s-rS - 报告查看器编译错误

s-s-rS 2008 执行服务 LoadReport 错误