SQL डेवलपर में नया कनेक्शन जोड़ते समय Oracle TNS नाम नहीं दिखा रहा है


93

मैं SQL डेवलपर के साथ एक oracle डेटाबेस से कनेक्ट करने का प्रयास कर रहा हूं।

मैंने .Net oracle ड्राइवर स्थापित किए हैं और tnsnames.oraफ़ाइल को यहाँ रखा है
C:\Oracle\product\11.1.0\client_1\Network\Admin

मैं tnsnames.ora में निम्न प्रारूप का उपयोग कर रहा हूं:

dev =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XXX.XXX)(PORT = XXXX))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = idpdev2)
    )
  )

SQL डेवलपर में, जब मैं एक नया कनेक्शन बनाने की कोशिश करता हूं, तो कोई टीएनएस-नाम विकल्प के रूप में नहीं दिखता है।

क्या मुझे कुछ याद आ रहा है?

जवाबों:


176

SQL डेवलपर इस क्रम में tnsnames.ora फ़ाइल के लिए निम्न स्थान पर दिखेगा

  1. $ HOME / .tnsnames.ora
  2. $ TNS_ADMIN / tnsnames.ora
  3. रजिस्ट्री में TNS_ADMIN लुकिंग कुंजी
  4. /etc/tnsnames.ora (गैर-विंडोज़)
  5. $ ORACLE_HOME / नेटवर्क / व्यवस्थापक / tnsnames.ora
  6. LocalMachine \ SOFTWARE \ ओरेकल \ ORACLE_HOME_KEY
  7. LocalMachine \ SOFTWARE \ ओरेकल \ ORACLE_HOME

यह देखने के लिए कि कौन सा SQL डेवलपर उपयोग कर रहा है, show tnsवर्कशीट में कमांड जारी करें

यदि आपकी tnsnames.ora फ़ाइल को मान्यता नहीं मिल रही है, तो निम्न प्रक्रिया का उपयोग करें:

  1. अपने tnsnames.ora फ़ाइल वाले फ़ोल्डर को इंगित करने के लिए TNS_ADMIN नामक एक पर्यावरण चर को परिभाषित करें ।

    विंडोज में, यह कंट्रोल पैनल > सिस्टम > एडवांस्ड सिस्टम सेटिंग्स > एनवायरमेंट वेरिएबल्स ... पर नेविगेट करके किया जाता है

    लिनक्स में, TNS_ADMIN वैरिएबल को अपने होम डायरेक्टरी में .profile फ़ाइल में परिभाषित करें ।

  2. ओएस की पुष्टि इस पर्यावरण चर को पहचान रही है

    विंडोज कमांड लाइन से: echo% TNS_ADMIN%

    लिनक्स से: $ TNS_ADMIN गूंज

  3. SQL डेवलपर को पुनरारंभ करें

  4. अब SQL डेवलपर में सही पर क्लिक करें कनेक्शन और चुनें नया कनेक्शन ... । ड्रॉप डाउन बॉक्स में कनेक्शन प्रकार के रूप में TNS का चयन करें । Tnsnames.ora से आपकी प्रविष्टियाँ अब यहाँ प्रदर्शित होनी चाहिए।

1
मेरे लिए: $ HOME / .tnsnames.ora ने काम नहीं किया ... मैंने इसके बजाय $ HOME / tnsnames.ora का उपयोग किया। यह भी ध्यान दें: आपको टूल्स पर जाना होगा -> प्राथमिकताएं, "tns" की खोज करें और डायरेक्टरी को $ HOME पर इंगित करें
Ryan Delucchi

SQL डेवलपर 1.5 संस्करण के लिए रिलीज़ नोट्स में होने के बावजूद, मैंने पाया कि Ubuntu 12.04 LTS पर केवल # 5 ने काम किया । यह जाँचने के लिए इन चरणों को आज़माएँ कि क्या आपका मामला है: forum.oracle.com/message/2769285#2769285उल्लेखनीय : लेखक को विस्टा पर समस्या थी।
LAFK का कहना है कि मोनिका

विंडोज में मेरे लिए काम किया। लॉगिंग चीजें हमेशा के लिए FTW!
इसहाक

TNS_ADMIN सेट करना मेरे लिए काम नहीं करता था। इसके बजाय, मैंने सभी TNSNAMES फ़ाइलों के लिए कंप्यूटर खोजा और उन सभी की सामग्री को अपडेट किया। पता नहीं क्यों विंडोज 7 एसक्यूएल डेवलपर कुछ पुराने फ़ोल्डर में कुछ अन्य TNSNAMES फ़ाइल का उपयोग करने पर कायम है।
बेन

1
नोट: $TNS_ADMINDIRECTORY वास्तविक .oraफ़ाइल नहीं है
जीनोरमा 14

30

SQL डेवलपर खोलें। उपकरण पर जाएँ -> प्राथमिकताएँ -> डेटाबेस -> उन्नत तब स्पष्ट रूप से Tnsnames निर्देशिका सेट करें

मेरा TNSNAMES सही ढंग से स्थापित किया गया था और मैं टॉड, SQL * प्लस आदि से जुड़ सकता था लेकिन मुझे काम करने के लिए SQL Developer प्राप्त करने के लिए ऐसा करने की आवश्यकता थी। शायद यह एक विन 7 मुद्दा था क्योंकि यह भी स्थापित करने के लिए एक दर्द था।


स्वीकृत जवाब मेरे काम नहीं आया लेकिन इसने (विंडोज सर्वर 2008R2)
जोश वॉट्स

एक ही मुद्दा था, लेकिन SQL डेवलपर% TNS_ADMIN% \ tnsnames.ora से पहले% userprofile% \ tnsnames.ora में भी देखा था, और जहाँ मैं अतिरिक्त tnsnames.ora फ़ाइल थी।
एमबी

15

में SQLDeveloper ब्राउज़ Tools --> Preferences, के रूप में छवि के नीचे में दिखाया गया है।

यहां छवि विवरण दर्ज करें

में प्राथमिकताएं विकल्पों expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directoryजहां tnsnames.ora वर्तमान।
फिर Ok पर क्लिक करें ।
जैसा कि नीचे चित्र में दिखाया गया है।

यहां छवि विवरण दर्ज करें

तुमने किया हैं!

अब आप TNSnames विकल्पों के माध्यम से कनेक्ट कर सकते हैं ।


"Databse: उन्नत" ==> मेरा संस्करण 1.5.5 नहीं मिल रहा है
Tarek El-Mallah

1
2.1 से कम संस्करणों के लिए या यदि आपने 2.1 या उससे अधिक पर Tnsnames डायरेक्टरी निर्दिष्ट नहीं की है तो कृपया @JasonAnderson उत्तर में निर्दिष्ट करें ।
चन्द्रशेखर

मेरे पास टूल्स-> प्राथमिकताएँ -> डेटाबैज़-> उन्नत पैरामीटर मेनू में Tnsnames निर्देशिका विकल्प नहीं है। मैं SqlDeveloper v1.1.3
अहमदोव

14

आप हमेशा संपर्क की जाँच करने के लिए TNSPING चलाकर tnsnames.ora फ़ाइल का स्थान पता कर सकते हैं (9i या बाद में):

C:\>tnsping dev

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 08-JAN-2009 12:48:38

Copyright (c) 1997, 2005, Oracle.  All rights reserved.

Used parameter files:
C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = XXX)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = DEV)))
OK (30 msec)

C:\>

कभी-कभी, समस्या आपके द्वारा tnsnames.ora में की गई प्रविष्टि के साथ है, ऐसा नहीं है कि सिस्टम इसे नहीं ढूंढ सकता है। उस ने कहा, मैं मानता हूं कि tns_admin पर्यावरण चर सेट होना एक अच्छी बात है, क्योंकि यह अपरिहार्य मुद्दों से बचा जाता है जो यह निर्धारित करने के साथ उत्पन्न होता है कि tnsnames फ़ाइल का उपयोग कई ओरेकल घरों के साथ सिस्टम में किया जा रहा है।


मैं tnsping टूल कैसे स्थापित कर सकता हूँ ??
कीनकेट

क्लाइंट इनस्टॉल में डेटाबेस टूल्स या कुछ इस तरह का चेकबॉक्स है।
DCookie

2

जेसन द्वारा बताए गए कदम बहुत अच्छे हैं और काम करना चाहिए। हालांकि SQL डेवलपर के साथ थोड़ा ट्विस्ट है। यह पहली बार tnsnames.ora फ़ाइल को पढ़ता है, कनेक्शन विनिर्देशों (होस्ट, सेवा का नाम, पोर्ट) को कैश करता है। उसके बाद, जब tnsname.ora फ़ाइल से मूल प्रविष्टि को हटा दिया जाता है, तो यह चश्मे को अमान्य नहीं करता है। SQL डेवलपर समाप्त और पुनरारंभ होने के बाद भी कैश जारी रहता है। यह स्थिति को संभालने का इतना अतार्किक तरीका नहीं है। भले ही tnsnames.ora फ़ाइल अस्थायी रूप से अनुपलब्ध हो, लेकिन SQL डेवलपर तब भी कनेक्शन बना सकता है जब तक कि मूल विनिर्देश अभी भी सत्य हैं। समस्या उनके अगले छोटे मोड़ के साथ आती है। SQL डेवलपर tnsnames.ora फ़ाइल में सेवा के नाम को केस-संवेदी मान के रूप में मानता है जब कनेक्शन को हल करता है। तो अगर आपके पास कोई एंट्री नाम ABCD हुआ करता था। फ़ाइल में दुनिया और आपने इसे abcd.world नामक एक नई प्रविष्टि के साथ बदल दिया, SQL डेवलपर ABCD.world के लिए अपने कनेक्शन चश्मा को अपडेट नहीं करेगा - यह पूरी तरह से अलग कनेक्शन के रूप में abcd.world का इलाज करेगा। मुझे आश्चर्य नहीं है कि ओरेकल उत्पाद केस-संवेदी के रूप में व्यवहार करेगा, जो कि ऑरेकल-डिवेलप्ड फ़ाइल प्रारूप की सामग्री है जो स्पष्ट रूप से केस-असंवेदनशील है?


@ सभी: क्या आप जानते हैं कि इस सूची को खाली करने के लिए कैसे मजबूर किया जाए? यदि ऐसा है, तो कृपया stackoverflow.com/q/6412559/168646 पर
डेविड वनिल

1

Sql डेवलपर में, Tools-> वरीयताओं पर नेविगेट करें-> Datababae-> उन्नत-> Tnsname निर्देशिका को tnsnames.ora युक्त निर्देशिका पर सेट करें


0

उपरोक्त परिवर्तनों में से किसी ने भी मेरे मामले में कोई अंतर नहीं डाला। मैं कमांड विंडो में TNS_PING चला सकता था लेकिन SQL डेवलपर यह पता नहीं लगा सका कि tnsnames.ora कहाँ था।

मेरे मामले में मुद्दा (विंडोज 7 - 64 बिट - एंटरप्राइज) यह था कि ओरेकल इंस्टॉलर ने स्टार्ट मेनू शॉर्टकट को SQL डेवलपर के गलत संस्करण की ओर इशारा किया था। इंस्टॉलर के साथ तीन SQL डेवलपर उदाहरण दिखाई देते हैं। एक% ORACLE_HOME% \ client_1 \ sqldeveloper \ में है और दो% ORACLE_HOME% \ client_1 \ sqldeveloper \ bin \ में हैं।

इंस्टॉलर ने एक स्टार्ट मेनू शॉर्टकट स्थापित किया जो बिन डायरेक्टरी के एक संस्करण पर इंगित करता था जो कि केवल कार्य नहीं करता था। यह हर बार जब मैं SQL डेवलपर शुरू करता हूं तो पासवर्ड मांगता हूं, याद नहीं कि मैंने जो विकल्प बनाए थे और जब मैंने कनेक्शन तंत्र के रूप में टीएनएस को चुना तो एक रिक्त सूची प्रदर्शित की। यह भी अन्य पदों में संदर्भित डेटाबेस उन्नत सेटिंग्स में TNS निर्देशिका क्षेत्र नहीं है।

मैंने पुराने प्रारंभ शॉर्टकट को टॉस किया और% orACLE_HOME% \ client_1 \ sqldeveloper \ sqldeveloper.exe पर एक शॉर्टकट स्थापित किया। उस परिवर्तन ने मेरे मामले में समस्या को ठीक कर दिया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.