postgresql - Call plpgsql function in select's where clause -


मेरे पास एक plpgsql फ़ंक्शन fillwhere (parameter1 date) जो एक जटिल रिटर्न जहां एक पाठ के रूप में खंड , मान लीजिए कि यह एक कोड के रूप में clause2 = filter2 देता है, लेकिन यह वास्तव में अन्य खंडों का एक गुच्छा देता है।

मुझे इस फ़ंक्शन को एक चयन में कॉल करने की आवश्यकता है जहां खंड पूरक कि खंड, यह है कि मैंने अभी तक क्या किया है:

  SELECT value1 से तालिका 1 WHERE clause1 = filter1 और पूरक जगह (पैरामीटर 1);  

लेकिन यह त्रुटि देता है

का तर्क WHERE का प्रकार होना चाहिए प्रकार बूलियन, प्रकार टाइप नहीं

क्या है ऐसा करने का सही तरीका?

आप एक टेक्स्ट मूल्य कोड में, जो आमतौर पर SQL में संभव नहीं है आपको या तो सर्वर पर दो दौर यात्राएं करने की आवश्यकता है।

  1. प्राप्त करें WHERE खंड: SELECT पूरक जगह ('& lt; mydate & gt;')
  2. SELECT क्वेरी को कंसैट करें
  3. इस क्वेरी को निष्पादित करें: SELECT .. WHERE ...

या (अधिमानतः) गतिशील का उपयोग करें एसक्यूएल एक पीएल / पीजीएसयूएलएल फ़ंक्शन में है। एसओ पर बहुत से उदाहरण हैं।

आपने अपना वास्तविक कोड नहीं दिया ...

एसक्यूएल इंजेक्शन < / Strong> जब भी आप उपयोगकर्ता इनपुट को कोड में बदल देते हैं।


Comments

Popular posts from this blog

php - Select box validation (in laravel) -

pandas - Iterate on Groupby Object's fields -

Creating a sparse matrix in Matlab with a specified number of independent Bernoulli +-1 nonzero entries -