Oracle उपयोगकर्ता का पासवर्ड बदलने के लिए JDBC का उपयोग करने के लिए आपको दो काम करने होंगे:
- पासवर्ड को सीधे SQL स्ट्रिंग में डालें (बाइंड पैरामीटर का उपयोग नहीं किया जा सकता),
- एस्केप प्रोसेसिंग अक्षम करें।
आप बाइंड वेरिएबल्स का उपयोग नहीं कर सकते क्योंकि उपयोगकर्ता नाम और पासवर्ड डेटाबेस को एकल-उद्धृत स्ट्रिंग्स के रूप में नहीं भेजे जाते हैं।
?
SQL स्ट्रिंग में एक बाइंड वेरिएबल प्लेसहोल्डर के रूप में लिया जा रहा है, और इस वजह से Oracle JDBC द्वारा SQL स्ट्रिंग को किसी बिंदु पर उलझाया जा रहा है। स्टेटमेंट पर एस्केप प्रोसेसिंग को अक्षम करना ऐसा होने से रोकता है। कोशिश करें:
Statement s = conn.createStatement();
s.setEscapeProcessing(false);
s.executeUpdate("ALTER user Stephen identified by \"newPassword?\" replace \"oldPassword\"");
यदि आप पासवर्ड को प्रोग्रामेटिक रूप से सेट कर रहे हैं, तो आपके कोड को यह भी सुनिश्चित करना चाहिए कि नए और पुराने पासवर्ड में कोई "
नहीं है। वर्ण, SQL इंजेक्शन से बचने के लिए।