Oracle BI Publisher多个选择参数

时间:2014-11-19 02:52:56

标签: oracle oracle11g obiee bi-publisher

我需要在BI Publisher报表上有多个选择参数。我将参数传递给一个函数,该函数将逗号分隔的值列表转换为表。然后我在" IN"中使用csv解析器函数中的表。 where子句中的语句。它看起来像下面......

select * from table(my_report_function(my_csv_parser_function(:Parameter))

当我在SQL Developer中运行它时,这很好用。问题是,当BI Publisher传递参数时,它会将每个逗号解释为一个单独的参数,因此我得到的参数数量无效错误。如何阻止它执行此操作,或者是否有更好的方法来处理传递给函数的多个选择参数?

1 个答案:

答案 0 :(得分:0)

是的,参数在sql查询中作为一行传递,以便稍后在sql查询中使用此参数。

在你的情况下,它可以是例如:

select * from table(my_report_function(my_csv_parser_function(1,2,3,4,5,6))

相反,您可以在您的SQL查询中使用此参数。 以我为例,它是:

select *
from dev_dmart.FCT_CURRENCY_RATE
WHERE FROM_CURRENCY_CD = 840
and TO_CURRENCY_CD IN (:multiple_select_parameter_list)

在你的情况下,它可以是这样的:

select * from table(my_report_function())
where field in (:Parameter)

或者您可以在Publisher中的“Before data”上创建事件触发器,并在那里调用函数,它将计算数据并将其插入TABLE(例如PRECALCULATED_DATA)。 然后在报告中,您可以使用查询:

从PRECALCULATED_DATA中选择*     where(:参数)

中的字段