Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak wyświetlić wszystkie tabele w Oracle?

Podobnie jak w przypadku większości relacyjnych baz danych, może wystąpić sytuacja, w której będziesz musiał wyświetlić podstawowe metadane i przejrzeć rzeczywistą listę tabel oraz własność bazy danych. Na szczęście istnieje wiele sposobów wykonania tego stosunkowo prostego zadania w Oracle, więc pokrótce omówimy każdą opcję poniżej, aby znaleźć tę, która najlepiej odpowiada Twoim potrzebom.

Co to są słowniki danych Oracle?

Słownik danych w Oracle to zbiór tabel tylko do odczytu, które dostarczają przydatnych informacji o bazie danych, w tym schematach, użytkownikach, uprawnieniach, a nawet danych audytowych. Wartości w tych przechowywanych słownikach są automatycznie aktualizowane przez Oracle za każdym razem, gdy na serwerze zostanie wykonana instrukcja, która modyfikuje dane.

Stamtąd słowniki tylko do odczytu można czytać i odpytywać, tak jak każdą standardową tabelę, która, jak zobaczymy poniżej, zapewnia bardzo przydatną funkcjonalność.

Wyświetlanie tabel należących do bieżącego użytkownika

Na najbardziej podstawowym poziomie możesz wyświetlić listę wszystkich posiadanych stołów przez obecnego użytkownika Oracle. Można to osiągnąć za pomocą prostego SELECT zapytanie w USER_TABLES słownik danych.

Po połączeniu z Oracle wydaj to oświadczenie:

SELECT
  table_name, owner
FROM
  user_tables
ORDER BY
  owner, table_name

Spowoduje to zwrócenie listy wszystkich tabel, których właścicielem jest bieżący użytkownik, jak określono w owner kolumna.

Wyświetlanie tabel dostępnych dla bieżącego użytkownika

W sytuacji, gdy interesuje Cię tylko to, do jakich tabel aktualny użytkownik Oracle ma dostęp do, niezależnie od własności, użyjesz ALL_TABLES zamiast tego słownik danych.

SELECT
  table_name, owner
FROM
  all_tables
ORDER BY
  owner, table_name

Jest prawdopodobne, że to zapytanie zwróci znacznie więcej wyników, niż jesteś zainteresowany, ponieważ przeglądasz wszystko, nawet zdalnie dostępne dla użytkownika, więc możesz ograniczyć swoje zapytanie, określając odpowiedniego owner , jak tak:

SELECT
  table_name, owner
FROM
  all_tables
WHERE
  owner='schema_name'
ORDER BY
  owner, table_name

Wyświetlanie wszystkich tabel

Wreszcie, gdy absolutnie musisz wyświetlić każdy stół w systemie, nie szukaj dalej niż świetne i potężne DBA_TABLES słownik danych.

SELECT
  table_name, owner
FROM
  dba_tables
WHERE
  owner='schema_name'
ORDER BY
  owner, table_name

Ważne jest, aby pamiętać, że ta ostatnia DBA_TABLES słownik może wymagać uprawnień użytkownika wykraczających poza te, które posiada bieżący użytkownik. W razie potrzeby może być konieczne przyznanie SELECT ANY DICTIONARY uprawnienia lub SELECT_CATALOG_ROLE rola. Więcej informacji na temat nadawania tych uprawnień można znaleźć w oficjalnej dokumentacji.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL nie wyświetla wartości null w zapytaniu nie równa się?

  2. SIGN() Funkcja w Oracle

  3. Oracle.ManagedDataAccess.EntityFramework — ORA-01918:użytkownik „dbo” nie istnieje

  4. Pozbądź się zduplikowanych wartości z jednej kolumny w dwóch kolumnach wybierz

  5. Połączenie krzyżowe w Oracle