Anonim

SQL स्टेटमेंट चलाते समय आपको कभी-कभी एक ora-00942 त्रुटि दिखाई देती है। इसके कुछ कारण हैं और हमेशा की तरह, त्रुटि सिंटैक्स सबसे वर्णनात्मक नहीं है। यदि आप इसके खिलाफ आ रहे हैं और जानना चाहते हैं कि कैसे ora-00942 त्रुटि को ठीक किया जाए, तो पढ़ें।

जहाँ तक मुझे पता है, ora-00942 त्रुटि के तीन मुख्य कारण हैं:

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

मैं आपको दिखाता हूँ कि हर एक को कैसे संबोधित किया जाए।

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

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

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

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

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

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

- उपयोगकर्ता या भूमिका के लिए सूची वस्तु विशेषाधिकारों

सेलेक्ट ग्रैन्डी, ओनर। '

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

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

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

यह ora-00942 त्रुटि का कारण गलत क्वेरी सिंटैक्स या यदि तालिका मौजूद नहीं है, तो हो सकता है। हालांकि यह शुरू करने के लिए तार्किक पहला स्थान प्रतीत होता है, मुझे यकीन है कि उपयोगकर्ता विशेषाधिकार त्रुटि का नंबर एक कारण है। तालिका नहीं है या गलत तालिका सिंटैक्स का उपयोग किया जा रहा है दूसरा है।

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

मालिक का चयन करें, object_name, all_objects से object_type, जिसमें object_type IN ('TABLE', 'VIEW') और object_name = 'your_TABLE_NAME';

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

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

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

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

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

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

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

कैसे ora-00942 त्रुटि को ठीक करने के लिए