बैच-अपडेट के रिटर्न-कोड के बारे में कहने के लिए jdbc-spec में निम्नलिखित है:
<ब्लॉकक्वॉट>0 या इससे अधिक - कमांड को सफलतापूर्वक संसाधित किया गया था और मान एक अद्यतन गणना है जो डेटाबेस में पंक्तियों की संख्या को दर्शाता है जो कमांड के निष्पादन से प्रभावित थेअध्याय 14 बैच अपडेट 121
Statement.SUCCESS_NO_INFO - कमांड को सफलतापूर्वक संसाधित किया गया था, लेकिन प्रभावित पंक्तियों की संख्या अज्ञात है
Statement.SUCCESS_NO_INFO को -2 के रूप में परिभाषित किया गया है, इसलिए आपका परिणाम कहता है कि सब कुछ ठीक रहा, लेकिन आपको अपडेट किए गए कॉलम की संख्या के बारे में जानकारी नहीं मिलेगी।
ओरेकल-दस्तावेज कहता है:
<ब्लॉकक्वॉट>• तैयार किए गए स्टेटमेंट बैच के लिए, बैच में प्रत्येक व्यक्तिगत स्टेटमेंट द्वारा डेटाबेस में प्रभावित पंक्तियों की संख्या जानना संभव नहीं है। इसलिए, सभी सरणी तत्वों का मान -2 है। JDBC 2.0 विनिर्देश के अनुसार, -2 का मान इंगित करता है कि ऑपरेशन सफल रहा लेकिन प्रभावित पंक्तियों की संख्या अज्ञात है।
• एक सामान्य विवरण बैच के लिए, सरणी में वास्तविक अद्यतन गणनाएँ होती हैं जो प्रत्येक ऑपरेशन से प्रभावित पंक्तियों की संख्या को दर्शाती हैं। वास्तविक अद्यतन गणना केवल मानक बैचिंग के Oracle कार्यान्वयन में सामान्य विवरण के मामले में प्रदान की जा सकती है।
• कॉल करने योग्य स्टेटमेंट बैच के लिए, सर्वर हमेशा मान 1 को अद्यतन गणना के रूप में लौटाता है, भले ही प्रत्येक ऑपरेशन से प्रभावित पंक्तियों की संख्या कुछ भी हो।
तो ऐसा लगता है कि यदि आपको अद्यतन-गणना की आवश्यकता है तो आप PreparedStatement
. का उपयोग नहीं कर सकते हैं s लेकिन सादे Statement
पर वापस आना होगा एस.