Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

BIRT में पैरामीटर इनपुट के बाद डेटा सेट क्वेरी को अपडेट करना

यह मानते हुए कि आप ओरेकल डीबी पर हैं (अन्य सिस्टम अलग तरह से व्यवहार कर सकते हैं) आपको पता होना चाहिए कि एक बाइंड वैरिएबल (जेडीबीसी भाषण में:प्रश्न चिह्न) एक स्केलर वैल्यू को प्रतिस्थापित कर सकता है। केवल, उदा. एक स्ट्रिंग या एक संख्या।

लेकिन आप सूची . जैसा कुछ चाहते हैं इनपुट के रूप में संख्याओं की संख्या। इस प्रकार एक बाइंड वेरिएबल इस मामले में आपकी मदद नहीं करेगा।

आप जो चाहते हैं उसे हासिल करने का शायद सबसे आसान तरीका यह है:

अपनी क्वेरी में लिखें:

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. Ubuntu 16.04 पर MySQL वर्कबेंच को स्थापित और कॉन्फ़िगर करें

  2. मैं इस टेक्स्ट फ़ाइल को कैसे पढ़ूं और MySQL में कैसे सम्मिलित करूं?

  3. MySQL/हाइबरनेट - मैं एक MySQL पूल किए गए कनेक्शन को कैसे डिबग कर सकता हूं जो गिरता रहता है?

  4. mysql तालिका में टैग खोजने का एक बेहतर तरीका

  5. संयोजनों का अवैध मिश्रण MySQL त्रुटि