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

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

Ответ 1

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

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'

Ответ 2

SELECT table_name  from all_tables where owner = 'YOURSCHEMA';

Ответ 3

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

select TABLE_NAME from user_tables

Ответ 4

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

select * from tab;

Ответ 5

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

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

Ответ 6

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

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

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

select TABLE_NAME from user_tables

Ответ 7

select * from cat;

он отобразит все таблицы в вашей схеме cat синоним user_catalog

Ответ 8

select * from user_tables;

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

Ответ 9

select TABLE_NAME from user_tables;

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

Ответ 10

SELECT имя_таблицы, владелец FROM all_tables, где owner = 'schema_name' order by table_name

Ответ 12

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

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

Ответ 13

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

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

Ответ 14

Вы можете напрямую запустить второй запрос, если знаете имя владельца.

--First вы можете выбрать, какие существуют все ВЛАДЕЛЬЦЫ:

SELECT DISTINCT(owner) from SYS.ALL_TABLES;

--Then вы можете увидеть таблицы под этим владельцем:

SELECT table_name, owner from all_tables where owner like ('%XYZ%');