Mysql
 sql >> база данни >  >> RDS >> Mysql

Актуализиране на заявката за набор от данни след въвеждане на параметър в BIRT

Ако приемем, че сте на 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 + ")";

Това е.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да създам и заредя втора база данни в ddev?

  2. Групиране по дата, връщане на ред, дори ако няма намерени записи

  3. MySQL при актуализация на дублиран ключ + засегнат брой редове

  4. как да извика съхранената процедура на MySQL при пролетно зареждане с помощта на хибернация?

  5. MySQL:изберете елементи, които не са в списък