Ако приемем, че сте на Oracle DB (другите системи може да се държат различно), трябва да сте наясно, че променлива за свързване (в JDBC реч:въпросителният знак) може да замени скаларна стойност само, напр. низ или число.
Но вие искате нещо като списък от числа като вход. По този начин променливата за свързване няма да ви помогне в този случай.
Вероятно най-лесният начин да постигнете това, което искате, е това:
Във вашата заявка напишете:
WHERE column_name in (1) -- $REPLACE_THIS$
Имайте предвид, че използвам коментар в заявката като маркер. След това в beforeOpen
на заявката събитие, променете текста на заявката по следния начин:
// construct a comma-separated string representation of your list
// based on your report parameter (exercise left to the reader)
// var replacement = my_to_sql_csv(params["my_report_parameter"].value);
// for demonstration use:
var replacement = "1,2";
// modify the `IN` expression inside the SQL
this.queryText = this.queryText.replaceAll("(1) -- $REPLACE_THIS$", "(" + replacement + ")";
Това е.