Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

dbms_metadata.get_ddl काम नहीं कर रहा

dbms_metadata . से दस्तावेज़ीकरण:

<ब्लॉककोट>

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

इसलिए जब तक आप एक विशेषाधिकार प्राप्त उपयोगकर्ता के रूप में जुड़े नहीं हैं, आप किसी अन्य उपयोगकर्ता की वस्तुओं के लिए डीडीएल नहीं देख सकते हैं। आपको SYS . के रूप में कनेक्ट करना होगा , या आपके पास SELECT_CATALOG_ROLE . है XT की ऑब्जेक्ट परिभाषा प्राप्त करने में सक्षम होने के लिए आपके उपयोगकर्ता को दी गई भूमिका।

उस भूमिका के साथ भी:

<ब्लॉककोट>

संग्रहीत कार्यविधियों, कार्यों और निश्चित-अधिकार पैकेजों में, भूमिकाएँ (जैसे SELECT_CATALOG_ROLE) अक्षम हैं। इसलिए, ऐसा पीएल/एसक्यूएल प्रोग्राम केवल अपने स्वयं के स्कीमा में वस्तुओं के लिए मेटाडेटा प्राप्त कर सकता है। यदि आप एक पीएल/एसक्यूएल प्रोग्राम लिखना चाहते हैं जो एक अलग स्कीमा में वस्तुओं के लिए मेटाडेटा प्राप्त करता है (चयनकर्ता के SELECT_CATALOG_ROLE के कब्जे के आधार पर), तो आपको प्रोग्राम को इनवोकर्स-अधिकार बनाना होगा।

अगर आप dbms_metadata को कॉल कर रहे हैं किसी अज्ञात पीएल/एसक्यूएल ब्लॉक से कोई फर्क नहीं पड़ता, लेकिन यदि आप इसे किसी प्रक्रिया से कॉल कर रहे हैं तो आपको AUTHID शामिल करना होगा प्रक्रिया घोषणा में खंड, AUTHID CURRENT_USER जोड़कर ।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle में SQL क्वेरी के इनपुट के रूप में फ़ाइल से पढ़े गए मान पास करें

  2. Oracle SID और सेवा का नाम; कनेक्शन समस्याएं

  3. Oracle डेटाबेस में सभी संग्रहीत प्रक्रियाओं को कैसे सूचीबद्ध करें

  4. पिछले महीने की सभी तिथियों को सूचीबद्ध करने के लिए ओरेकल एसक्यूएल क्वेरी

  5. ऑरैकल में सीमांकित स्ट्रिंग को पंक्तियों में बदलें