Oracle BI Publisher 多选参数

问题描述 投票:0回答:1

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

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

当我在 SQL Developer 中运行它时,它工作正常。问题是,当 BI Publisher 传递参数时,它似乎将每个逗号解释为一个单独的参数,因此我得到一个无效的参数数量错误。我怎样才能阻止它这样做或者是否有更好的方法来处理传递给函数的多个选择参数?

oracle oracle11g obiee bi-publisher
1个回答
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 中选择 * 其中字段在(:参数)

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.