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

Получаване на списък с всички таблици в Oracle?

SELECT owner, table_name
  FROM dba_tables

Това предполага, че имате достъп до DBA_TABLES изглед на речник с данни. Ако нямате тези привилегии, но се нуждаете от тях, можете да поискате от DBA изрично да ви предостави привилегии върху тази таблица или DBA да ви предостави SELECT ANY DICTIONARY привилегия или SELECT_CATALOG_ROLE роля (всяко от които ще ви позволи да направите заявка към всяка таблица с речник с данни). Разбира се, може да искате да изключите определени схеми като SYS и SYSTEM които имат голям брой таблици на Oracle, които вероятно не ви интересуват.

Като алтернатива, ако нямате достъп до DBA_TABLES , можете да видите всички таблици, до които вашият акаунт има достъп чрез ALL_TABLES изглед:

SELECT owner, table_name
  FROM all_tables

Въпреки това, това може да е подмножество от наличните таблици в базата данни (ALL_TABLES ви показва информацията за всички таблици, до които вашият потребител е получил достъп).

Ако се интересувате само от таблиците, които притежавате, а не тези, до които имате достъп, можете да използвате USER_TABLES :

SELECT table_name
  FROM user_tables

От USER_TABLES има информация само за таблиците, които притежавате, няма OWNER колона – собственикът по дефиниция сте вие.

Oracle също има редица наследени изгледи на речник с данни - TAB , DICT , TABS и CAT например - това може да се използва. Като цяло, не бих предложил да използвате тези наследени изгледи, освен ако нямате абсолютно никаква нужда да архивирате вашите скриптове в Oracle 6. Oracle не е променял тези изгледи от дълго време, така че те често имат проблеми с по-новите типове обекти. Например TAB и CAT и двата изгледа показват информация за таблици, които са в кошчето на потребителя, докато [DBA|ALL|USER]_TABLES изгледи всички ги филтрират. CAT също така показва информация за материализирани регистрационни файлове за изглед с TABLE_TYPE на "TABLE", което е малко вероятно да е това, което наистина искате. DICT комбинира таблици и синоними и не ви казва кой е собственик на обекта.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Извличане на съобщения от пощенска кутия с помощта на PL/SQL Mail_Client API

  2. Ограничаване на върнатия запис от SQL заявка в Oracle

  3. има ли функция PRODUCT, както има функция SUM в Oracle SQL?

  4. Разгръщане на множество изчислителни екземпляри на Oracle, използвайки пул от екземпляри и terraform

  5. Какво всъщност използва LISTAGG с ORDER BY NULL като критерии за поръчка?