समस्या निवारण के लिए सामान्य सलाह "सॉकेट से पढ़ने के लिए कोई और डेटा नहीं" त्रुटियाँ।
ये त्रुटियां आमतौर पर किसी अन्य गंभीर त्रुटि के कारण होती हैं, जैसे कि ORA-600 त्रुटि। एक समस्या इतनी गंभीर है कि सर्वर प्रक्रिया क्रैश हो गई और क्लाइंट को उचित त्रुटि संदेश भी नहीं भेज सका। (इन त्रुटियों का एक अन्य सामान्य कारण SQLNET के कारण नेटवर्क डिस्कनेक्शन है। EXPIRE_TIME या कोई अन्य प्रक्रिया जो पुराने सत्रों को समाप्त कर देती है।)
मूल त्रुटि संदेश का पता लगाने के लिए अलर्ट लॉग देखें।
इस निर्देशिका में फ़ाइल अलर्ट_ [नाम] देखें। लॉग इन करें:select value from v$parameter where name = 'background_dump_dest';
विशिष्ट त्रुटि संदेश और विवरण मिलने के बाद, support.oracle.com पर जाएं। "ora-600 टूल" का उपयोग करें और फिर ORA-600 संदेश के बाद पहला नंबर देखें।
उस विशिष्ट प्रकार की ORA-600 त्रुटि के लिए आमतौर पर एक या अधिक लेख होंगे। बग की संभावित सूची को कम करने के लिए सटीक संस्करण और प्लेटफ़ॉर्म का उपयोग करें। (लेकिन अगर लेख में "प्रभावित संस्करण" गलत हैं तो आश्चर्यचकित न हों। Oracle के "संस्करण x.y में निश्चित" के दावे हमेशा सत्य नहीं होते हैं।)
लेख आम तौर पर अधिक विवरण में बताते हैं कि समस्या कैसे हुई, संभावित समाधान, और एक समाधान जिसमें आमतौर पर पैच या अपग्रेड शामिल होता है।
व्यवहार में आप शायद ही कभी समाधान . करना चाहते हैं ये समस्याएं। "विशिष्ट" सलाह यह सत्यापित करने के लिए Oracle समर्थन से संपर्क करना है कि आपको वास्तव में वही समस्या है, एक पैच प्राप्त करें, अनुमति प्राप्त करें और पर्यावरण को नीचे लाएं, और फिर पैच लागू करें। और तब शायद एहसास होता है कि पैच काम नहीं करता है। बधाई हो, आपने अभी बहुत समय बर्बाद किया है।
इसके बजाय, आप आमतौर पर से बच सकते हैं क्वेरी या प्रक्रिया में सूक्ष्म परिवर्तन के साथ समस्या। Oracle में बहुत सारी सुविधाएँ हैं, इसे करने का लगभग हमेशा एक और तरीका है। यदि कोड थोड़ा अजीब लग रहा है, तो भविष्य के प्रोग्रामर को चेतावनी देने के लिए एक टिप्पणी जोड़ें:"यह कोड बग X से बचने के लिए अजीब लगता है, जिसे संस्करण Y में ठीक किया जाना चाहिए।"
इस कोड के लिए विशिष्ट सलाह
अगर यह वास्तव में आपकी पूरी प्रक्रिया है, तो आपको इसे कुछ इस तरह से बदलना चाहिए:
insert into local.tab3(col1, col2, col3, col4)
select tab1.col1, tab1.col2, tab2.col1, tab2.col2
from [email protected] tab1
join [email protected] tab2
on tab1.col1 = tab2.col1
and tab1.col2 = tab2.col2;
सामान्य तौर पर, यदि संभव हो तो आपको हमेशा SQL में काम करना चाहिए। खासकर यदि आप कई कर्सर खोलने से बच सकते हैं। और विशेष रूप से यदि आप दूरस्थ डेटाबेस में कई कर्सर खोलने से बच सकते हैं।