我想将日期范围和员工ID从SSRS发送到Oracle包。有谁知道怎么做?即使我尝试使用from_date,to_date和employee_id中的三个参数声明一个oracle包,它也可以正常使用一个员工ID。但如果我在SSRS Web界面中选择多个员工说错误的参数数量,则会失败。有谁知道如何处理这个?
答案 0 :(得分:1)
通常使用SQL和SSRS,您可以执行类似
的操作 Select * From Table where Table.Field in @Param
Oracle当然不同,取决于您使用的连接类型。
ODBC连接你会使用类似的东西:
Select * From Table where Table.Field = ?
参数顺序在这里很重要,所以要小心。
你会使用类似的OLEDB连接:
Select * From Table where Table.Field = :Param
但是,上述任何一项都不能用于多选参数。你可以这样做:
=”Select * From Table where Table.Field in (‘” + Join(Parameters!parameter.Value,”‘, ‘”) + “‘)”
或
=”Select * From Table where Table.Field in(” + Join(Parameters!parameter.Value,”, “) + “)”
如果值或您的字段仅为数字。
以下是一些您可以看到的好文章。如果没有更多信息,它可以提供比我个人更好的解释; Oracle环境,连接类型等的详细信息
- 确保您的Oracle版本为9或更高版本,但这些都不适用 版本8或更早。
- 在Oracle中使用参数时,请使用:而不是@符号 - :param而不是@param。
- 在为其提供值的数据集中添加“ALL”选项 多值下拉参数。
- 使用“where(field1 in(中)”检查where子句中的ALL :prmField1)或(ALL)in(:prmField1))“syntax。
- 您可以从数据集窗口执行查询,但只能执行 供应1个值。但是,该值可以是“全部”。
- 通过'ALL'与'(全选)'教育您的用户。
醇>
关于使用Oracle的SSRS中的多个参数的另一篇好文章:Davos Collective在顶部引用了该文章。
希望这有帮助!