Как перечислить все таблицы в схеме в Oracle SQL?



Как я могу перечислить все таблицы в схеме в Oracle SQL?

884   13  

13 ответов:

чтобы увидеть все таблицы в другой схеме, необходимо иметь одну или несколько из следующих системных привилегий:

SELECT ANY DICTIONARY
(SELECT | INSERT | UPDATE | DELETE) ANY TABLE

или большой молоток, роль DBA.

С любой из них вы можете выбрать:

SELECT DISTINCT OWNER, OBJECT_NAME 
  FROM DBA_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
   AND OWNER = '[some other schema]'

без этих системных привилегий вы можете видеть только таблицы, к которым вам был предоставлен некоторый уровень доступа, будь то напрямую или через роль.

SELECT DISTINCT OWNER, OBJECT_NAME 
  FROM ALL_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
   AND OWNER = '[some other schema]'

наконец, вы всегда можете запросить словарь данных для ваших собственных таблиц, как ваш права на ваши таблицы не могут быть отозваны (начиная с 10g):

SELECT DISTINCT OBJECT_NAME 
  FROM USER_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
SELECT table_name  from all_tables where owner = 'YOURSCHEMA';

Вы можете сделать запрос USER_TABLES

select TABLE_NAME from user_tables

Если вы вошли в систему как обычный пользователь без разрешения DBA, вы можете использовать следующую команду, чтобы увидеть все таблицы и представления вашей собственной схемы.

select * from tab;

попробуйте это заменить ? с вашим именем-схемы

select TABLE_NAME from  INFORMATION_SCHEMA.TABLES
 WHERE TABLE_SCHEMA =?
  AND TABLE_TYPE = 'BASE TABLE'

Если вы обращаетесь к Oracle с помощью JDBC (Java), вы можете использовать DatabaseMetadata класса. Если вы обращаетесь к Oracle с помощью ADO.NET вы можете использовать аналогичный подход.

Если вы обращаетесь к Oracle с ODBC, вы можете использовать SQLTables.

в противном случае, если вам просто нужна информация в sqlplus или аналогичном клиенте Oracle, один из уже упомянутых запросов будет делать. Например:

select TABLE_NAME from user_tables
select * from user_tables;

(показать все таблицы)

select * from cat;

он покажет все таблицы в вашей схеме cat синоним user_catalog

выберите table_name, owner из all_tables где owner= 'schema_name' порядок по table_name

посмотри на мою программа показать информацию о схеме БД. Он основан на: обратное проектирование модели данных Использование словаря данных Oracle

select TABLE_NAME from user_tables;

выше запрос даст вам имена всех таблиц, присутствующих в этом пользователе;

Если вам нужно получить размер стола, а также, это будет удобно:

select SEGMENT_NAME, PARTITION_NAME, BYTES from user_segments where SEGMENT_TYPE='TABLE' order by 1

имя счетчика таблиц и строк для всех таблиц под OWNER схема:

SELECT table_name, num_rows counter from DBA_TABLES WHERE owner = 'OWNER'

Comments

    Ничего не найдено.