Как мне перечислить все таблицы в схеме в Oracle SQL? - PullRequest
140 голосов
/ 11 февраля 2010

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

Ответы [ 14 ]

199 голосов
/ 12 февраля 2010

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

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]'

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

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

SELECT DISTINCT OBJECT_NAME 
  FROM USER_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
63 голосов
/ 11 февраля 2010
SELECT table_name  from all_tables where owner = 'YOURSCHEMA';
13 голосов
/ 11 февраля 2010

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

select TABLE_NAME from user_tables
4 голосов
/ 21 апреля 2012

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

select * from tab;
3 голосов
/ 11 февраля 2010

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

select TABLE_NAME from  INFORMATION_SCHEMA.TABLES
 WHERE TABLE_SCHEMA =?
  AND TABLE_TYPE = 'BASE TABLE'
2 голосов
/ 07 июля 2016
select * from user_tables;

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

2 голосов
/ 11 августа 2013
select * from cat;

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

2 голосов
/ 11 февраля 2010

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

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

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

select TABLE_NAME from user_tables
1 голос
/ 10 августа 2017

SELECT имя_таблицы, владелец FROM all_tables, где владелец = 'имя_схемы' упорядочено по имени_таблицы

1 голос
/ 28 ноября 2015
select TABLE_NAME from user_tables;

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...