मेरा अनुमान है कि समस्या प्रतिशत चिह्न के साथ है (%
) क्वेरी टेक्स्ट में। (क्या यह Django में एक बाइंड वैरिएबल प्लेसहोल्डर नहीं है?) उदा। अगर हम एक बाइंड वेरिएबल का उपयोग करने जा रहे थे, तो क्या वह कुछ इस तरह नहीं दिखेगा?
SELECT 'foo' FROM DUAL WHERE 'a' = %(varname)s ;
मुझे लगता है कि शायद Django आपके SQL टेक्स्ट को स्कैन कर रहा है और %w
. का सामना कर रहा है और उम्मीद है कि एक बाध्य चर होने के लिए। या तो वह, या यह एक sprintf
चल रहा है स्टाइल फ़ंक्शन, और %w
. का सामना करना पड़ रहा है और उस प्लेसहोल्डर को एक तर्क मान से बदलने की अपेक्षा कर रहा है।
(मैंने परीक्षण नहीं किया है, इसलिए यह सिर्फ एक विचार है, सिर्फ एक अनुमान है।)
वर्कअराउंड के अनुमान के रूप में, हो सकता है कि आप प्रतिशत संकेतों को दोगुना कर दें, वही हमें स्प्रिंटफ के माध्यम से% अक्षर मिलते हैं:
query("SELECT ... ,'%%w') ...");
अगर वह काम नहीं करता है, तो शायद यह एक बैकस्लैश चरित्र है, वही हम नियमित अभिव्यक्ति में वर्णों से बचते हैं:
query("SELECT ... ,'\%w') ...");
(या, आपको बैकस्लैश को दोगुना करने की आवश्यकता हो सकती है। ये अन्य सॉफ़्टवेयर द्वारा उपयोग किए जाने वाले सम्मेलनों के आधार पर केवल अनुमान हैं।)