समस्या को समझाने का सबसे आसान तरीका है Oracle क्लाइंट और ODAC क्लाइंट लाइब्रेरी के बीच अंतर को बताना।
64-बिट मशीन (विंडोज 7+) पर, आपको 64-बिट ओरेकल क्लाइंट स्थापित करना होगा। यह वह क्लाइंट है जिसका उपयोग आपकी मशीन Oracle डेटाबेस से कनेक्ट करने के लिए करेगी जो आपकी मशीन पर स्थानीय रूप से तैनात हैं। वेब सर्वर या अन्य टर्मिनल सर्वर पर होस्ट किए गए ऐप्स के लिए, नियम समान है।
चाल यह है... एक डेवलपर के रूप में, हमारी मशीनों में .Net IDE टूलिंग भी होनी चाहिए। ओरेकल में एक भद्दा नामकरण सम्मेलन है लेकिन अनिवार्य रूप से 2 टुकड़े हैं:ओडीटी (टूलिंग) और ओडीएसी (डेटा एक्सेस)। ODP.Net डेटा प्रदाता ODAC पुस्तकालयों का एक हिस्सा है।
तो... वापस IDE पर... विजुअल स्टूडियो 32-बिट है और इसलिए हमें उपरोक्त टूलिंग को 32-बिट में स्थापित करना होगा।
विकास करते समय, डिबगिंग, आदि। VS.Net Oracle के साथ काम करने के लिए 32-बिट क्लाइंट लाइब्रेरी और डेटा एक्सेस लाइब्रेरी का उपयोग कर रहा है।
जैसे ही आप इस एप्लिकेशन को किसी मशीन पर तैनात करते हैं, यह मशीन पर लोड किए गए क्लाइंट का उपयोग करता है जब तक कि किसी विशिष्ट प्लेटफॉर्म को लक्षित नहीं किया जाता है।
इसका मतलब है कि यदि आप 32 को लक्षित करते हैं और 64 पर तैनात करते हैं, तो यह टूट जाएगा... और इसके विपरीत। सबसे अच्छी बात यह है कि इसे किसी भी प्लेटफ़ॉर्म सेक्शन पर छोड़ दें, और बस याद रखें कि आप क्या कर रहे हैं :)
दूसरी बात जो सावधान रहने की है वह यह सुनिश्चित करना है कि आपके क्लाइंट और ODAC पैकेज दोनों एक ही संस्करण के हैं... आप 11g R2 क्लाइंट और 11g R5 ODAC नहीं चाहते हैं, क्योंकि जैसे ही आप तैनात करते हैं, बकवास फिर से टूट जाता है।
यहां चेतावनी यह है कि यदि आप अपने एप्लिकेशन के अंदर ऑरैकल क्लाइंट को "एम्बेड" करना चाहते हैं, तो इस स्थिति में कई अन्य पुस्तकालयों के साथ ओराओप्स को एप्लिकेशन के साथ तैनात किया जाता है - इसे ओरेकल का इंस्टेंट क्लाइंट कहा जाता है, और यह ओडीएसी पैकेज का एक हिस्सा भी है और इसमें शामिल है। उनके पूर्ण विकसित क्लाइंट पैकेज में भी।
खुशखबरी...
Oracle जल्द ही (2013 Q1) अपना अगला ODP.Net पैकेज जारी करने वाला है... और 64 बिट भेद... यह पुराने माइक्रोसॉफ्ट लाइब्रेरी की तरह काम करेगा, केवल इसे ऑरैकल द्वारा अधिक मजबूत फीचर सेट के साथ बनाया और बनाए रखा जाएगा। मैं केवल यही चाहता हूं कि यह जल्दी आ जाए।