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

时间:2009-02-23 16:27:15

标签: sql oracle reporting-services

我有SSRS报告,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是默认字符串值参数

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

  

ora-00939错误,功能参数太多。

我无法在这里找出错误。

请帮我一个想法。

1 个答案:

答案 0 :(得分:1)

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

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

如果你实际上不需要做REPLACE来摆脱空格,你应该可以做类似的事情

WHERE scg.group_abbreviation in (:PI_REGION_LIST)