Stejně jako u většiny relačních databází může nastat situace, kdy budete potřebovat zobrazit základní metadata a prohlédnout si skutečný seznam tabulek a vlastnictví vaší databáze. Naštěstí existuje několik způsobů, jak provést tento relativně jednoduchý úkol v Oracle, takže stručně prozkoumáme každou možnost níže, abychom zjistili, která nejlépe vyhovuje vašim potřebám.
Co jsou datové slovníky Oracle?
Datový slovník v Oracle je sbírka tabulek pouze pro čtení, které poskytují užitečné informace o databázi včetně schémat, uživatelů, oprávnění a dokonce i auditovaných dat. Hodnoty v těchto uložených slovnících jsou automaticky aktualizovány společností Oracle, kdykoli je na serveru proveden příkaz, který upravuje data.
Odtud lze číst slovníky pouze pro čtení a dotazovat se na ně stejně jako jakoukoli standardní tabulku, která, jak uvidíme níže, poskytuje některé velmi užitečné funkce.
Zobrazení tabulek vlastněných aktuálním uživatelem
Na nejzákladnější úrovni můžete chtít zobrazit seznam všech vlastněných stolů aktuálním uživatelem Oracle. Toho lze dosáhnout jednoduchým SELECT
dotaz na USER_TABLES
datový slovník.
Po připojení k Oracle vydejte toto prohlášení:
SELECT
table_name, owner
FROM
user_tables
ORDER BY
owner, table_name
Tím se vrátí seznam všech tabulek, jejichž vlastníkem je aktuální uživatel, jak je uvedeno v owner
sloupec.
Zobrazení tabulek přístupných aktuálnímu uživateli
V situaci, kdy vás zajímá pouze to, k jakým tabulkám má aktuální uživatel Oracle přístup bez ohledu na vlastnictví budete používat ALL_TABLES
místo toho datový slovník.
SELECT
table_name, owner
FROM
all_tables
ORDER BY
owner, table_name
Je pravděpodobné, že tento dotaz vrátí mnohem více výsledků, než vás zajímá, protože si prohlížíte vše, co je uživateli dostupné i vzdáleně, takže možná budete chtít omezit svůj dotaz zadáním vhodného owner
, asi takhle:
SELECT
table_name, owner
FROM
all_tables
WHERE
owner='schema_name'
ORDER BY
owner, table_name
Zobrazení všech tabulek
A konečně, když absolutně potřebujete zobrazit každý stůl v systému nehledejte nic jiného než skvělé a výkonné DBA_TABLES
datový slovník.
SELECT
table_name, owner
FROM
dba_tables
WHERE
owner='schema_name'
ORDER BY
owner, table_name
Je důležité poznamenat, že toto poslední DBA_TABLES
slovník může vyžadovat uživatelská oprávnění nad rámec toho, co má aktuální uživatel. Je-li to nutné, možná budete muset získat SELECT ANY DICTIONARY
oprávnění nebo SELECT_CATALOG_ROLE
role. Více informací o udělení těchto oprávnění naleznete v oficiální dokumentaci.