Supponendo che tu sia su un DB Oracle (altri sistemi potrebbero comportarsi in modo diverso), dovresti essere consapevole che una variabile bind (in JDBC speech:il punto interrogativo) può sostituire un valore scalare solo, ad es. una stringa o un numero.
Ma vuoi qualcosa come un elenco di numeri come input. Quindi una variabile bind non ti aiuterà in questo caso.
Probabilmente il modo più semplice per ottenere ciò che desideri è questo:
Nella tua domanda, scrivi:
WHERE column_name in (1) -- $REPLACE_THIS$
Nota che sto usando un commento nella query come indicatore. Quindi, nel beforeOpen
della query evento, modifica il testo della query in questo modo:
// 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 + ")";
Questo è tutto.