从 SSRS 调用预言机包



我想将日期范围和员工 ID 从 SSRS 发送到 Oracle 包。有谁知道该怎么做?即使我尝试在参数中声明一个带有三个 oracle 包from_date、to_date并employee_id它也可以使用一个员工 ID 正常工作。但是,如果我在SSRS网络界面中选择多个员工说错误的参数数量,则会失败。有谁知道如何处理这个问题?

通常使用 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 环境、连接类型等的详细信息。

快速参考:

  1. 确保您的 Oracle 版本为 9 或更高版本,这些都不适用于 版本 8 或更早版本。
  2. 在 Oracle 中使用参数时,请使用 : 而不是 @ 符号 – :p阿兰而不是@param。
  3. 向数据集添加"ALL"选项,以提供 多值下拉参数。
  4. 通过使用"where ( 字段 ( :p rmField1 ) 或 ( :p rmField1 ) 中的 'ALL' "语法。
  5. 您可以从数据集窗口执行查询,但只能 提供 1 个值。但是,该值可以是"ALL"。
  6. 教育您的用户了解"全部"与"(全选)"。

另一篇关于 Oracle SSRS 中的多个参数的好文章:达沃斯集体 在顶部引用。

希望这有帮助!

最新更新