यहाँ समस्या यह है कि Oracle का संग्रहीत कार्यविधियाँ करने का तरीका JDBC के अनुरूप नहीं है। ओरेकल के एसपी आउट पैरामीटर या रिटर्न वैल्यू के माध्यम से परिणामसेट डेटा लौटाते हैं जो कर्सर हैं, और उन्हें विशेष रूप से संभाला जाना है। इसका मतलब है कि आप स्प्रिंग के किसी भी JDBC सामान का उपयोग नहीं कर सकते हैं जो JDBC के अनुपालन को मानता है, आपको इसे स्वयं करना होगा।
व्यवहार में, इसका मतलब है कि आपको JdbcTemplate
. का उपयोग करना होगा और CallableStatementCallback
, जिसका मतलब है कि आप जितना चाहें उतना मैन्युअल JDBC कोडिंग कर सकते हैं, लेकिन मुझे अभी तक इससे बचने का कोई तरीका नहीं मिला है।
थोड़ी सी तरफ, मुझे संदेह है कि जेडीबीसी स्पेक को चीजों को करने के साइबेस (और, एसोसिएशन, एसक्यूएल सर्वर द्वारा) के अनुरूप होने के लिए लिखा गया था, क्योंकि जिस तरह से जेडीबीसी में संग्रहीत प्रक्रियाओं को संभाला जाता है वह उन लोगों के लिए उल्लेखनीय रूप से उपयुक्त है सिस्टम (और Oracle के लिए एक खराब फिट)।