यह वास्तव में ब्रैड रिप्पे के उत्तर के लिए एक टिप्पणी होनी चाहिए , लेकिन अफसोस, पर्याप्त प्रतिनिधि नहीं। उस जवाब से मुझे वहां 90% रास्ते मिल गए। मेरे मामले में, डेटाबेस की स्थापना और विन्यास ने डेटाबेस के लिए tnsnames.ora फ़ाइल में प्रविष्टियाँ डाल दीं जो मैं चला रहा था। सबसे पहले, मैं पर्यावरण चर (विंडोज) सेट करके डेटाबेस से कनेक्ट करने में सक्षम था:
set ORACLE_SID=mydatabase
set ORACLE_HOME=C:\Oracle\product\11.2.0\dbhome_1
और फिर का उपयोग कर कनेक्ट
sqlplus / as sysdba
अगला, ब्रैड रिप्पे के उत्तर से कमान चलाना:
select value from v$parameter where name='service_names';
दिखाया कि नाम बिल्कुल मेल नहीं खाते। मूल रूप से Oracle के डेटाबेस कॉन्फ़िगरेशन सहायक का उपयोग करके बनाई गई प्रविष्टियाँ:
MYDATABASE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = mylaptop.mydomain.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydatabase.mydomain.com)
)
)
क्वेरी से सेवा का नाम केवल के mydatabase
बजाय था mydatabase.mydomain.com
। मैंने tnsnames.ora फ़ाइल को बिना डोमेन नाम के सिर्फ आधार नाम में संपादित किया ताकि वे इस तरह दिखें:
MYDATABASE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = mylaptop.mydomain.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydatabase)
)
)
मैंने TNS श्रोता सेवा को पुनः आरंभ किया (मैं अक्सर सेवा नियंत्रण पैनल के बजाय एक प्रशासक कमांड विंडो [या विंडोज पॉवर्सशेल] का उपयोग करता हूं lsnrctl stop
और करता हूं lsnrctl start
, लेकिन दोनों काम करते हैं।) उसके बाद, मैं कनेक्ट करने में सक्षम था।