我正在使用SSRS 2008 R2。并且发现在我看来是一个错误的情况。
我有一个共享数据集 -
SELECT 'value1' AS Value
UNION
SELECT 'value''2'
我将此DS绑定到多值参数。当我从多值下拉列表中仅检查值'2时 - 我看到在SQL事件探查器中传递了这样的参数
@Value=N'value''2' -- Two single quotes
当我在分析器中检查两个值时,我看到了
@Value=N'value1,value''''2' -- Four single quotes
我的程序正确处理了第一个案件。
在我看来,逃避发生了两次 - 首先是每个值,第二个是整个字符串?
有谁知道这种行为的来源,Thx提前!
答案 0 :(得分:6)
我遇到了一个非常类似的问题 - 正如您所见,最奇怪的部分是,当选择一个参数但不适用于多个参数时,它可以工作。
无论如何,我通过稍微不同地将参数传递给存储过程来解决这个问题 - 在数据集的Parameters
部分中使用以下表达式:
=Join(Parameters!Value.Value, ",")
根据需要替换您的参数名称。
这实际上仍会传递相同的逗号分隔值,但由于某种原因似乎正确处理引号。