में हजारों पैरामीटर के साथ तैयार स्टेटमेंट मैंने इस प्रश्न PreparedStatement IN clause alternatives? से समाधान पढ़ा था। लेकिन मेरे मामले में, मेरे पास एक खंड में लगभग 5000 पैरामीटर हैं और यह java.sql.SQLException की ओर ले जाएगा: तैयार या कॉल करने योग्य कथन में 2000 से अधिक पैरामीटर मार्कर हैं।आईएन क्लॉज
मैं
String sql = "select * from project in " + projectIds.toString()
projectIds
की तरह एक एसक्यूएल उपयोग कर रहा था एक StringBuilder जो की तरह है "(1,2,3,4 ....)" लेकिन कोड सुरक्षा रिपोर्ट है कि यह एक को जन्म दे सकता का कहना है एसक्यूएल इंजेक्षन। तो मुझे उपयोग करना है? प्लेसहोल्डर इसे टालने के लिए।
मैं
String sql = "select * from project where charindex(','+convert(varchar(max),id)+',', ?)>0";
statement.setString(1,projectIds.toString);//projectIds like ",1,2,3,4,"..
का उपयोग करने की कोशिश की लेकिन यह एक गलत सिंटैक्स त्रुटि के साथ समाप्त होता है।
क्या कोई समाधान है ???
आपका एसक्यूएल कुछ गलत वाक्यविन्यास, यह होना चाहिए, * CHARINDEX * लगता है गलत। सुझाव है कि आप इसे फिर से जांचें, और यदि आप कर सकते हैं तो इसे किसी अन्य तरीके से फिर से लिखें। – Minus