अधिकांश रिलेशनल डेटाबेस के साथ, ऐसी स्थिति आ सकती है जहां आपको अंतर्निहित मेटाडेटा को देखने और वास्तविक तालिका सूची और अपने डेटाबेस के स्वामित्व को देखने की आवश्यकता हो। शुक्र है, Oracle में इस अपेक्षाकृत सरल कार्य को करने के कई तरीके हैं, इसलिए हम आपकी आवश्यकताओं के लिए सबसे उपयुक्त खोजने के लिए नीचे दिए गए प्रत्येक विकल्प का संक्षेप में पता लगाएंगे।
Oracle डेटा डिक्शनरी क्या हैं?
Oracle में एक डेटा डिक्शनरी रीड-ओनली टेबल का एक संग्रह है जो डेटाबेस के बारे में उपयोगी जानकारी प्रदान करता है जिसमें स्कीमा, उपयोगकर्ता, विशेषाधिकार और यहां तक कि ऑडिटिंग डेटा भी शामिल है। इन संग्रहीत शब्दकोशों में मान स्वचालित रूप से Oracle द्वारा अपडेट किए जाते हैं जब भी सर्वर पर कोई कथन निष्पादित होता है जो डेटा को संशोधित करता है।
वहां से, केवल-पढ़ने के लिए शब्दकोशों को किसी भी मानक तालिका की तरह पढ़ा और पूछताछ की जा सकती है, जैसा कि हम नीचे देखेंगे कुछ बहुत उपयोगी कार्यक्षमता प्रदान करते हैं।
वर्तमान उपयोगकर्ता के स्वामित्व वाली तालिकाएँ देखना
सबसे बुनियादी स्तर पर, आप स्वामित्व वाली . सभी तालिकाओं की सूची देखना चाह सकते हैं वर्तमान Oracle उपयोगकर्ता द्वारा। इसे एक साधारण SELECT
. के साथ पूरा किया जा सकता है USER_TABLES
. पर क्वेरी डेटा डिक्शनरी।
Oracle से कनेक्ट होने के बाद, यह स्टेटमेंट जारी करें:
SELECT
table_name, owner
FROM
user_tables
ORDER BY
owner, table_name
यह उन सभी तालिकाओं की सूची लौटाएगा जिनका वर्तमान उपयोगकर्ता स्वामी है, जैसा कि owner
. में निर्दिष्ट है कॉलम।
वर्तमान उपयोगकर्ता द्वारा सुलभ तालिका देखना
ऐसी स्थिति में जहां आप केवल इस बात में रुचि रखते हैं कि वर्तमान Oracle उपयोगकर्ता के पास कौन सी तालिकाएँ हैं पहुँच स्वामित्व की परवाह किए बिना, आप ALL_TABLES
. का उपयोग करेंगे इसके बजाय डेटा डिक्शनरी।
SELECT
table_name, owner
FROM
all_tables
ORDER BY
owner, table_name
यह संभावना है कि यह क्वेरी आपकी रुचि से कहीं अधिक परिणाम देगी क्योंकि आप उपयोगकर्ता के लिए दूर से भी पहुंच योग्य हर चीज़ देख रहे हैं, इसलिए आप एक उपयुक्त owner
निर्दिष्ट करके अपनी क्वेरी को सीमित करना चाह सकते हैं। , इस तरह:
SELECT
table_name, owner
FROM
all_tables
WHERE
owner='schema_name'
ORDER BY
owner, table_name
सभी टेबल देखना
अंत में, जब आपको बिल्कुल हर टेबल देखने की आवश्यकता हो सिस्टम में, महान और शक्तिशाली DBA_TABLES
. से आगे नहीं देखें डेटा डिक्शनरी।
SELECT
table_name, owner
FROM
dba_tables
WHERE
owner='schema_name'
ORDER BY
owner, table_name
यह नोट करना महत्वपूर्ण है कि यह अंतिम DBA_TABLES
शब्दकोश को उपयोगकर्ता विशेषाधिकारों की आवश्यकता हो सकती है जो वर्तमान उपयोगकर्ता के पास है। यदि आवश्यक हो, तो आपको SELECT ANY DICTIONARY
. प्रदान करने की आवश्यकता हो सकती है विशेषाधिकार या SELECT_CATALOG_ROLE
भूमिका। इन विशेषाधिकारों को प्रदान करने के बारे में अधिक जानकारी आधिकारिक दस्तावेज़ीकरण में पाई जा सकती है।