sql >> Databáze >  >> RDS >> Oracle

Jak vypsat všechny tabulky v Oracle

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.


  1. Třídicí strom se zhmotněnou cestou?

  2. Návrat XFS na Linux

  3. Omezení pouze pro jeden záznam označený jako výchozí

  4. Jednoduchý dotaz k získání maximální hodnoty pro každé ID