मुझे अतीत में इसी तरह की समस्याएं आई हैं। तब मैं इस निष्कर्ष पर पहुंचा कि मूल रूप से ओरेकल के डीबी लिंक किसी भी चीज के लिए "टूटे हुए" हैं लेकिन साधारण एसक्यूएल प्रकार (विशेष रूप से यूडीटी, सीएलओबीएस में समस्याएं हो सकती हैं, एक्सएमएलटाइप भी हो सकता है)। यदि आप OID समाधान काम कर रहे हैं तो आपके लिए शुभकामनाएँ।
मैंने जिस समाधान का सहारा लिया, वह डीबी लिंक के बजाय जावा संग्रहीत प्रक्रिया का उपयोग करना था।
जावा संग्रहित प्रक्रिया के लक्षण:
- एक "रिच सेट ऑफ़ टाइप्स" लौटा सकता है, बस सभी जटिल प्रकारों (UDT's, टेबल्स/एरे/वेरेज़) के बारे में देखें Oracle ऑनलाइन दस्तावेज़ीकरण ब्योरा हेतु। Oracle एक DBLink की तुलना में जावा से जटिल (या समृद्ध) प्रकार के मार्शलिंग का बेहतर काम करता है।
- संग्रहीत जावा "डिफ़ॉल्ट कनेक्शन" प्राप्त कर सकता है (एक ही सत्र में डीबी से एसक्यूएल कनेक्शन के रूप में चलता है - कोई प्रमाणीकरण समस्या नहीं)।
- संग्रहीत जावा रिमोट डीबी पर पीएल/एसक्यूएल प्रोक को कॉल करता है, और जावा जेडीबीसी परत रिमोट डीबी से मार्शलिंग करता है।
- संग्रहीत जावा परिणाम को संकुलित करता है और परिणामों को SQL या PL/SQL परत पर लौटाता है।
यह थोड़ा सा काम है, लेकिन अगर आपके पास थोड़ा सा जावा है, तो आपको Oracle दस्तावेज़ और नमूने से एक समाधान को "कट और पेस्ट" करने में सक्षम होना चाहिए।
मुझे आशा है कि यह मदद करता है।