2012-10-15 19 views
21

पर पंजीकृत नहीं है I बस XP से Win 7 पर माइग्रेट किया गया है। मुझे लगता है कि इस त्रुटि को ऑपरेटिंग सिस्टम स्विचिंग के साथ करना है। मैंने एक .NET अनुप्रयोग लिखा है जो मूल रूप से बड़ी मात्रा में डेटा मालिश करता है और फिर डेटाबेस से जुड़ता है और तालिका को सम्मिलित करता है/अपडेट करता है।OraOLEDB.Oracle प्रदाता स्थानीय मशीन

जब मैं डेटाबेस से कनेक्ट करने के लिए एक बटन दबाता हूं तो मैं अपने स्थानीय मशीन पर ऑरैकल प्रदाता पंजीकृत नहीं होने के बारे में त्रुटि में भाग लेता हूं।

एक स्पष्ट, चरण-दर-चरण रूपरेखा कि मैं इसे कैसे ठीक कर सकता हूं, इसकी बहुत सराहना की जाएगी।

सटीक त्रुटि संदेश है:

'OraOLEDB.Oracle.1' प्रदाता स्थानीय मशीन पर पंजीकृत नहीं है

+0

विशिष्ट त्रुटि क्या है? – Annjawn

+0

क्या आपने इन समस्याओं का समाधान किया है? – Handsome

उत्तर

3
  1. सही मेरा कंप्यूटर गुण पर
  2. क्लिक करें पर क्लिक करें
  3. उन्नत सिस्टम सेटिंग्स
  4. पर क्लिक करें "पर्यावरण चर" पर क्लिक करें बटन।
  5. प्रणाली चर खंड में "PATH" वेरिएबल प्राप्त
  6. संपादित करें "पथ" चर और इसे करने के लिए ओरेकल स्थापना पथ को जोड़ने (अपने स्थानीय मशीन से) की तरह ;C:\oracle\product\10.2.0\client_1\bin
+0

बाद में पुनरारंभ की आवश्यकता हो सकती है। –

32

मैं के बाद एक ही मुद्दा था विंडोज 7 64 बिट पर 64 बिट ओरेकल क्लाइंट स्थापित करना। समाधान है कि मेरे लिए काम किया:

खुला एक कमांड प्रॉम्प्ट और प्रकार:

  1. ओपन व्यवस्थापक मोड में एक कमांड प्रॉम्प्ट
  2. cd \oracle\product\11.2.0\client_64\BIN
  3. c:\Windows\system32\regsvr32.exe OraOLEDB11.dll
+0

यदि आपके पास कई संस्करणों में कई अलग-अलग ओरेकल उत्पाद हैं तो आपको उन अन्य संस्करणों पर regsrv32.exe का भी उपयोग करने की आवश्यकता हो सकती है, जिसके आधार पर ओरेकल क्लाइंट अपवाद का कारण बन रहा है। – stephen

+9

उन लोगों के लिए जिन्होंने इस पोस्ट पर ठोकर खाई है, लेकिन विन 7 64-बिट मशीन पर 32-बिट ओरेकल क्लाइंट है, तो पथ का उपयोग करना सुनिश्चित करें: सी: \ विंडोज \ SysWOW64 \ Regsvr32.exe (और निश्चित रूप से देखें उचित ओरेकल 32-बिट बीआईएन डीआईआर) – jimo3

+0

सीडी के लिए क्या खड़ा है? और यह मुझे फेंक देता है सिस्टम निर्दिष्ट पथ नहीं मिल सकता है। – Handsome

5

निम्न परीक्षण कार्य करें: tnsping instance_name

जहां example_name उस उदाहरण का नाम है जिसे आप कनेक्ट करना चाहते हैं (यदि यह एक एक्सई डेटाबेस है, तो "tnsping xe"

यदि यह ठीक है, तो डर वुल्फ के उत्तर के चरणों का पालन करें। अगर ठीक नहीं है, तो Annjawn के जवाब के चरणों का पालन करें।

यह दोनों मामलों में मेरे लिए हल किया गया।

+0

tnsping ओएलई डीबी प्रदाता से संबंधित नहीं है –

0

डेर Wolfs सिरे पर बिल्डिंग, मैं Oracle ग्राहक की स्थापना रद्द और इसे फिर से स्थापित है, सेटअप प्रोग्राम पर राइट क्लिक करें, और प्रशासक के रूप में यह चल रहा है। इसने काम कर दिया।

2

आप विंडोज 64 बिट्स है, तो ओरेकल चालक 32 बिट पहले तो 64 बिट्स ड्राइवर स्थापित करने का प्रयास, thats मुझे क्या करना है और काम कर रहा है

+0

मेरे मामले में, मैंने अभी तक 'किसी भी CPU' से 'x64' तक प्रोजेक्ट को स्विच किया है और फिर यह ठीक काम कर रहा है। –

0

यह केवल मेरे लिए काम किया के बाद मैं 'प्लेटफार्म लक्ष्य' में बदल 64 '

कि ऐसा करने के लिए (मैं Oracle 12C 64 बिट्स उपयोग कर रहा हूँ पर विचार), मैंने किया था:

  1. अधिकार (परियोजना के नाम पर क्लिक समाधान एक्सप्लोरर पैनल में पता लगाने, सामान्य रूप में, पर बाएं)

  2. 'बिल्ड' (नया खोला विंडो में)

  3. '64'

कि समस्या हल के लिए 'किसी भी सीपीयू' 'मंच लक्ष्य' बदल गया पर क्लिक किया।

3

आईआईएस का उपयोग करके मुझे एक ही समस्या थी।

सुनिश्चित करें कि '32 बिट एप्लिकेशन सक्षम करें' विकल्प को एप्लिकेशन पूल के उन्नत कॉन्फ़िगरेशन पर सत्य पर सेट किया गया है।

0

आप एक सी # projet में यह हो रही है, तो देखें कि आप निम्न कोड के साथ 64-बिट या 32-बिट मोड में चल रहे हैं:

 if (IntPtr.Size == 4) 
     { 
      Console.WriteLine("This is 32-Bit!"); 
     } 
     else if (IntPtr.Size == 8) 
     { 
      Console.WriteLine("This is 64 Bit!"); 
     } 

आप पाते हैं कि आप 64 में चल रहे हैं बिट मोड, आप 32-बिट (या इसके विपरीत) पर स्विच करने का प्रयास करना चाह सकते हैं। आप अपने आवेदन को 64 या 32 बिट (X64 और X86 क्रमशः) चलाने के लिए मजबूर करने के लिए follow this guide कर सकते हैं। आपको यह सुनिश्चित करना होगा कि Platform Target आपकी प्रोजेक्ट गुणों में Any CPU पर सेट नहीं है और यह स्पष्ट रूप से सेट है।

enter image description here

Any CPU से X86 को उस विकल्प स्विचिंग मेरी त्रुटि हल हो गई और मैं Oracle प्रदाता से कनेक्ट करने में सक्षम था।

+0

'IntPtr.Size' के बजाय आप' Environment.Is64BitProcess' –

0

इसे ठीक करने के लिए घंटों खर्च करने के बाद; और कुछ लोग इसे uncorrectly स्थापित के लिए, आप enter image description here

+0

का उपयोग भी कर सकते हैं पूर्ण "व्यवस्थापक" क्लाइंट की आवश्यकता नहीं है। आप "कस्टम" का भी उपयोग कर सकते हैं जहां आपको "ओएलई डीबी के लिए ओरेकल प्रदाता" घटक सक्षम करना होगा –

0

मेरी टीम यादृच्छिक मशीनों है कि हम में हमारे मंच स्थापित करने का प्रयास करेंगे में हर अब और फिर इस मुद्दे पर आते हैं होगा (वर्तमान संस्करण अनइंस्टॉल और प्रशासक के रूप में फिर से इसे पुनः स्थापित करने की जरूरत है हम 12.2.0.4 ver ओरेकल ड्राइवरों 12C उपयोग करते हैं लेकिन बाद काफी प्रयोग का एक सा हमने महसूस किया कि क्या गलत था हम साथ ही अन्य संस्करणों)

के साथ इस बग भर में आया था:

ने कहा मशीनों क्षुधा है कि मशीन का उपयोग कर रहे थे के लिए होता है -व्यापी ओरेकल ड्राइवर चुपचाप उन्हें लॉक कर रहे हैं और ओरेकल ड्राइवर-इंस्टॉलर को अपने जादू को काम करने से रोकते हैं जब अपग्रेड/रीन्स का प्रयास करेंगे लंबा ओरेकल ड्राइवरों ने कहा। सबसे तेज़ "ऐप" आईआईएस में चल रही वेबसाइटें और इसी तरह की होगी क्योंकि इन ऐप्स को रीबूट पर अनिवार्य रूप से ऑटो-स्टार्ट करना होगा। इसका मुकाबला करने के लिए हम निम्नलिखित करते हैं:

  1. आईआईएस को पुनरारंभ करने पर स्वचालित रूप से प्रारंभ करने से अक्षम करें। किसी अन्य ऐप/सेवाओं के लिए ऐसा ही करें जो रीबूट पर स्वयं को स्वतः प्रारंभ करें।
  2. किसी भी पिछले ओरेकल ड्राइवर को अनइंस्टॉल करें और दोबारा जांचें कि रजिस्ट्री या फ़ोल्डर्स में कोई निशान पीछे नहीं है।
  3. रीबूट मशीन
  4. (फिर से) ओरेकल ड्राइवरों स्थापित करें और आईआईएस और अन्य ऑटो शुरू क्षुधा को पुन: सक्षम।
  5. मशीन रीबूट करें < - यह महत्वपूर्ण है। जब तक आप मशीन को रीबूट नहीं करते हैं तब तक ओरेकल के ओएलई डीबी ड्राइवर काम नहीं करेंगे।

यदि यह काम नहीं करता है तो ओएलई डीबी ड्राइवर काम करते समय दोहराना कुल्लाएं। उम्मीद है कि यह पता लगाने के लिए संघर्ष कर रहा है कि क्या हो रहा है।

संबंधित मुद्दे