在SSRS 2005中,必须声明标量变量
-
22-08-2019 - |
题
我有一个运行存储的Proc的报告:
EXEC ra_spProjectCalendar @Month, @Year, @ProjectID
ProjectID是一个多选择的下拉列表。 When a single project is selected, it works fine.如果我选择多个项目,我会得到错误:
"Must declare scalar variable "@ProjectID"
当我从“数据”选项卡运行时,它可以正常工作,但是,当我将其放入预览模式时,我有问题。
解决方案
我通过将查询作为表达式构建 - 在您的示例中得到了类似的工作
="EXEC ra_spProjectCalendar @Month = '" & Parameters!Month.Value & "',@Year='" & Parameters!Year.Value & "',@ProjectID = '" & Join(Parameters!ProjectID.Value, ",") & "'"
目标SP中的某些代码将多选字符串分配到一个临时表中,该表在连接中用于创建输出。
我不记得为什么我们最终这样做了 - 这是在我们转移到SSRS的开始时,此后的事情已经有所发展 - 但这可能是您描述的问题。
其他提示
我发生了相同的错误:必须声明标量变量。
我现在意识到,要检查的第一件事是,当您以文本或存储为存储的proc类型输入查询时,SSRS会自动在数据集属性的“参数”选项卡中创建paramter条目。如果没有创建它们,则无法正确读取您的查询。
就我而言,我使用OpenQuery来调用分析服务立方体并引用包含许多方括号的现场名称。不幸的是,SSR喜欢重新格式化您的代码,以使得“ [测量]。
如果您在另一个工具中编辑该查询,则将其重新副本重新审查回SSR,则SSR将无法读取该语法!即使它生成它!因此,请删除所有额外的方括号,并替换双引号,并再次起作用,并生成您的参数。
不隶属于 StackOverflow