我正在更改基于Oracle的SSRS报告,并且遇到各种参数问题。
与Oracle的连接是OLE DB。
我的代码没有做任何复杂的事情。我只添加了一个新参数。当我只有一个上述参数的实例时,它可以正常运行。一旦我再次添加它,它就会炸弹。
我要执行的操作是在参数匹配的情况下显示记录。如果不匹配,则显示所有记录。
我可以在DBVisualizer中运行两个查询而没有任何问题。
这就是我所做的
WHERE FieldName = nvl(:parameter, FieldName)
此结果与下面的结果不一样
WHERE FieldName = :parameter
OR :parameter IS NULL
问题是第二个WHERE
子句无法在具有OLE DB连接的SSRS中运行。不幸的是,我们不能使用其他连接管理器。
编辑:感谢Hannover Fist,我能够通过执行此操作使它生效
我将WHERE
子句更改为
WHERE FieldName = :parameter
OR :parameter2 IS NULL
然后映射参数2以从与原始参数相同的SSRS参数中提取
答案 0 :(得分:1)
我没有找到解决此问题的好方法,但是我通过在Oracle SQL中声明参数并将其映射到SSRS参数来解决此问题。
然后在其余查询中使用在Oracle SQL中创建的参数。这样,您将只使用每个SSRS参数一次。