Ora-00942 त्रुटि को कैसे ठीक करें

SQL कथन चलाते समय आप कभी-कभी ओरा -00 9 42 त्रुटि देखते हैं। इसमें कुछ कारण हैं और सामान्य रूप से, त्रुटि वाक्यविन्यास सबसे वर्णनात्मक नहीं है। यदि आप इसके खिलाफ आ रहे हैं और ओरा -00 9 42 त्रुटि को ठीक करने के बारे में जानना चाहते हैं, तो पढ़ें।

जहां तक ​​मुझे पता है, ओआरए -00 9 42 त्रुटि के तीन मुख्य कारण हैं:

  1. अपर्याप्त उपयोगकर्ता विशेषाधिकार
  2. तालिका या दृश्य वास्तव में मौजूद नहीं है
  3. तालिका या दृश्य एक अलग स्कीमा में है

मैं आपको दिखाऊंगा कि प्रत्येक को कैसे संबोधित किया जाए।

ओआरए -00 9 42 त्रुटि को ठीक करें

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

ओरा -00 9 42 त्रुटि के तीन कारणों की यह सूची संपूर्ण नहीं है। स्पष्ट रूप से इसके अन्य यादृच्छिक कारण हैं लेकिन ये तीन स्पष्ट रूप से सबसे आम हैं।

अपर्याप्त उपयोगकर्ता विशेषाधिकार

ओआरए -00 9 42 त्रुटि का एक मुख्य कारण यह है कि उपयोगकर्ता के पास प्रश्न में तालिका तक पहुंचने के लिए पर्याप्त विशेषाधिकार नहीं हैं। आप दो प्रश्नों को चलाकर इसे देख सकते हैं।

 - उपयोगकर्ता या भूमिका के लिए सूची सिस्टम विशेषाधिकार चुनें * dba_sys_privs से जहां अनुदानकर्ता (और user_role, 'सार्वजनिक'); 

- उपयोगकर्ता या भूमिका के लिए वस्तु ऑब्जेक्ट विशेषाधिकार

 अनुदानदाता, मालिक || '।' || table_name ऑब्जेक्ट, विशेषाधिकार, dba_tab_privs से अनुदान योग्य जहां अनुदानकर्ता (मालिक) द्वारा अनुदानकर्ता (मालिक) उपयोगकर्ता द्वारा आदेश दिया गया है, '||' || table_name, विशेषाधिकार; 

ये दोनों आपको बताएंगे कि प्रश्न में उपयोगकर्ता को आदेश चलाने के लिए सही विशेषाधिकार हैं या नहीं। यदि उपयोगकर्ता के पास सही विशेषाधिकार हैं, तो अगले पर जाएं। यदि उपयोगकर्ता के पास सही विशेषाधिकार नहीं हैं, तो उन्हें उन्हें दें या अपने डीबी व्यवस्थापक से ऐसा करने के लिए कहें।

ओरा -00 9 42 त्रुटि तब भी हो सकती है जब आप जिस स्कीमा का उपयोग कर रहे हैं उसका उपयोगकर्ता INSERT विशेषाधिकार है लेकिन विशेषाधिकार चुनें। दोबारा, विशेषाधिकार स्तर की जांच करें और सूची में चयन जोड़ें या इसे करने के लिए डीबी व्यवस्थापक से पूछें। जाहिर है, विशिष्ट चयन विशेषाधिकार प्रत्येक स्कीमा को दिया जाना चाहिए अन्यथा आप अभी भी ओरा -00 9 42 त्रुटि देखेंगे।

तालिका या दृश्य वास्तव में मौजूद नहीं है

ओरा -00 9 42 त्रुटि का यह कारण गलत क्वेरी वाक्यविन्यास के कारण हो सकता है या यदि तालिका मौजूद नहीं है। हालांकि यह लॉजिकल पहली जगह शुरू करने के लिए प्रतीत होता है, मुझे भरोसेमंद आश्वासन दिया जाता है कि उपयोगकर्ता विशेषाधिकार त्रुटि का पहला कारण है। तालिका नहीं है या गलत टेबल वाक्यविन्यास का उपयोग किया जा रहा है दूसरा है।

यह जांचने के लिए कि तालिका मौजूद है या नहीं, पहले क्वेरी के सिंटैक्स को जांचें। अगर वाक्यविन्यास सही है, तो इस क्वेरी को चलाएं।

 All_objects से स्वामी, object_name, object_type चुनें जहां ऑब्जेक्ट / टाइप करें ('टेबल', 'VIEW') और object_name = 'YOUR_TABLE_NAME'; 

उस अंतिम पंक्ति पर, वास्तविक तालिका नाम डालें जहां आप 'YOUR_TABLE_NAME' देखते हैं। यह आपको निश्चित रूप से बताना चाहिए कि आप जिस तालिका को क्वेरी करने का प्रयास कर रहे हैं वह मौजूद है या नहीं। यदि यह कोई तालिका के साथ नहीं लौटाता है, तो आप जिस तालिका से पूछताछ कर रहे हैं वह स्कीमा या डेटाबेस में मौजूद नहीं है।

यदि आप जिस सिस्टम का उपयोग कर रहे हैं, उसके पास टेबल्स मेनू है, तो आप तालिका को मैन्युअल रूप से चेक कर सकते हैं यदि आप पसंद करते हैं लेकिन उपरोक्त क्वेरी को काम पूरा हो जाता है।

तालिका या दृश्य एक अलग स्कीमा में है

यदि उपयोगकर्ता के पास विशेषाधिकार हैं और तालिका मौजूद है और आप अभी भी ओरा -00 9 42 त्रुटि देख रहे हैं, तो यह स्कीमा की संभावना है। यदि आप एकाधिक स्कीमा प्रबंधित कर रहे हैं, तो एक स्कीमा के विरुद्ध एक क्वेरी चलाने में आसान है जो आपकी नहीं है। जब आप व्यस्त होते हैं और इसके खिलाफ होते हैं, तो यह एक साधारण त्रुटि है।

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

जैसा ऊपर बताया गया है, मैंने इस टुकड़े के लिए मेरा ओरेकल डीबीए दोस्त से परामर्श लिया ताकि कड़ी मेहनत के लिए उसे सभी श्रेय मिले। अगर आपको यहां कोई त्रुटि या चूक मिलती है, तो वे अकेले हैं। अगर मुझे कुछ याद आया या गलत हो गया तो मुझे टिप्पणी अनुभाग में बताएं और मैं इसे सही कर दूंगा।

यदि आप ओआरए -00 9 42 त्रुटि को ठीक करने के किसी अन्य तरीके से जानते हैं, तो हमें इसके बारे में बताएं!

यह भी देखना