Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да изброите всички таблици в Oracle

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какво представляват PLSQL записи в Oracle

  2. Топ 30 най-полезни заявки за едновременен мениджър

  3. UTL_FILE.FOPEN() процедурата не приема пътя за директория?

  4. SQL Продължава да получава грешка с ON UPDATE CASCADE

  5. Агрегиране на редове в Oracle SQL оператор