बोझो का दूसरा संशोधित उत्तर करीब था लेकिन काफी नहीं था। हालांकि इसने मुझे उत्तर तक पहुँचाया।
मैंने जिस कोड उदाहरण के साथ शुरुआत की थी उसे लेते हुए हम इसके साथ समाप्त होते हैं:
CallableStatement proc = connection.prepareCall("{ ? = call dbo.mySproc() }");
proc.registerOutParameter(1, Types.INTEGER);
proc.execute();
int returnValue = proc.getInt(1);
prepareCall
में "कॉल" के सामने "? =" मुख्य भाग हैं फ़ंक्शन जो रिटर्न वैल्यू और registerOutputParameter
. के लिए एक जगह सेट करता है . इसे एक इंटीजर के रूप में पंजीकृत किया जाना है, क्योंकि वापसी मूल्य हमेशा एक int होता है (कम से कम SQL सर्वर में, शायद यह अन्य डीबी में अलग है)। इसलिए आपको इसे getInt
. का उपयोग करके प्राप्त करना होगा . मैंने इस विधि का परीक्षण किया और यह काम करती है।