Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cập nhật truy vấn Tập dữ liệu sau khi nhập tham số trong BIRT

Giả sử rằng bạn đang sử dụng Oracle DB (các hệ thống khác có thể hoạt động khác), bạn nên biết rằng một biến liên kết (trong bài phát biểu JDBC:dấu chấm hỏi) có thể thay thế một giá trị vô hướng chỉ, ví dụ:một chuỗi hoặc một số.

Nhưng bạn muốn một cái gì đó giống như một danh sách của các số dưới dạng đầu vào. Do đó, một biến liên kết sẽ không giúp bạn trong trường hợp này.

Có lẽ cách dễ nhất để đạt được những gì bạn muốn là:

Trong truy vấn của bạn, hãy viết:

WHERE column_name in (1) -- $REPLACE_THIS$

Lưu ý rằng tôi đang sử dụng nhận xét trong truy vấn làm điểm đánh dấu. Sau đó, trong beforeOpen của truy vấn sự kiện, sửa đổi văn bản truy vấn như sau:

// 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 + ")";

Vậy là xong.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cố gắng lấy thuộc tính của non-object - CodeIgniter

  2. Cách định dạng thời gian thành '2:34 giờ', '0:34 giờ', v.v. trong MySQL

  3. Flask-SQLAlchemy - Các bảng / cơ sở dữ liệu được tạo và hủy khi nào?

  4. Hình ảnh dưới dạng liên kết trong cơ sở dữ liệu MySQL?

  5. PHP - tìm nạp stmt đã chuẩn bị vào lớp:Không tìm thấy lớp Lỗi nghiêm trọng