我有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错误,功能参数太多。
我无法在这里找出错误。
请帮我一个想法。
答案 0 :(得分:1)
REPLACE函数有三个字符串参数,最后一个是可选的。
MS documentation表示多值参数具有以下限制 “查询必须使用IN子句指定参数。”
如果你实际上不需要做REPLACE来摆脱空格,你应该可以做类似的事情
WHERE scg.group_abbreviation in (:PI_REGION_LIST)