2014-11-19 4 views
0

У меня есть требование иметь несколько параметров выбора в отчете BI Publisher. Я передаю параметры функции, которая превращает список значений, разделенных запятыми, в таблицу. Затем я использую таблицы из функции парсера csv в операторах «IN» в предложении where. Он выглядит как ниже ...Oracle BI Publisher несколько параметров выбора

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

Это прекрасно работает, когда я запускаю его в SQL Developer. Проблема в том, что, когда BI Publisher передает параметр, он интерпретирует каждую запятую как отдельный параметр, поэтому я получаю недопустимое количество ошибок параметров. Как я могу остановить это от этого или есть лучший способ обрабатывать несколько параметров выбора, передаваемых функции?

ответ

0

Да, параметр передается как строка в sql-запросе, чтобы использовать этот параметр в sql-запросе позже.

В вашем случае это может быть, например:

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

Вместо этого вы можете использовать этот параметр в вашем запросе. В моем случае, например, это:

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 и функции называют там который будет вычислять данные и вставлять их в ТАБЛИЦУ (например, PRECALCULATED_DATA). И в отчете вы можете использовать запрос:

выберите * из PRECALCULATED_DATA , где поле (Параметр)

+0

я второй пример все время. Мне нужно, как передать параметр множественного выбора функции. Есть один конкретный параметр множественного выбора, который у меня есть, который требует от меня использования другого запроса, поэтому я хочу написать одну PL/SQL-функцию, которая будет запускать один из двух запросов на основе того, выбирает ли пользователь значение в этом конкретном параметре. Я написал функцию, которая делает это очень хорошо в SQL Developer, но BIP дает мне неправильное количество ошибок параметров, когда я пытаюсь его использовать. – rdittmer

Смежные вопросы