【发布时间】:2014-09-23 12:54:49
【问题描述】:
我正在 SSRS 2008 中构建查询 Oracle 的报告。 我在数据集查询中内置了 3 个文本参数——它们的工作方式应该是,如果留空,它们应该包含所有内容。如果我在每个参数中输入一个值 - 报告返回值。但是,一旦我删除其中一个值 - 将框留空 - 报告什么也不返回(实际上它应该返回更多结果行)。 请参阅下面的查询。在过去的两天里,我试图对其进行故障排除,试图在互联网上找到一些答案,查看会话细节 - 没有运气。 我会很感激任何帮助,谢谢。
select WI_NUM , COMPONENT_NUM , LOT_NUM
from CONS
where
(:WI_NUM = '' OR WI_NUM = :WI_NUM)
and
(:COMP_NUM = '' OR COMPONENT_NUM = :COMP_NUM)
and
(:LOT_NUM = '' OR LOT_NUM = :LOT_NUM)
我也试过了,但同样的问题:
where
(:WI_NUM is NULL OR WI_NUM = :WI_NUM)
and
(:COMP_NUM is NULL OR COMPONENT_NUM = :COMP_NUM)
and
(:LOT_NUM is NULL OR LOT_NUM = :LOT_NUM)
所有参数都设置为数据类型文本,允许空格,不允许空值(不打勾)。
【问题讨论】:
-
参数不能为空。您是否尝试过在报告中显示参数值或将它们拉入数据集中?我还会检查参数值的长度以确保它不包含多个空格。我从未将 SSRS 与 Oracle 数据库一起使用,所以我不知道是否会有任何差异,但您的代码看起来应该对我有用。
-
嗨。我构建了检查参数是否为空的数据集:CASE when :WI_NUM is NULL THEN 1 ELSE 0 end FIELD1 并且当参数为空时显示 1,但报告不返回任何内容。这令人沮丧。
-
@tbone - 谢谢,我检查了链接,虽然有趣的想法是我不能在我的情况下应用它,我不能在数据库上创建程序。相反,我更想知道为什么我应用的基本方法不起作用。
标签: oracle reporting-services optional-parameters