Както при повечето релационни бази данни, може да възникне ситуация, при която трябва да прегледате основните метаданни и да прегледате действителния списък с таблици и собствеността на вашата база данни. За щастие има няколко начина за изпълнение на тази сравнително проста задача в 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
роля. Повече информация за предоставянето на тези привилегии можете да намерите в официалната документация.