Oracle - all_tables не завершена? - PullRequest
3 голосов
/ 09 марта 2012

Почему all_tables не показывает, на самом деле содержит список всех таблиц?

Я могу сделать select * from blah; и desc blah. Но выполнение select * from all_tables where lower(table_name) = 'blah'; возвращает 0 строк.

бла не синоним или представление, а таблица.

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

Ответы [ 3 ]

3 голосов
/ 19 апреля 2012

Вы можете попробовать следующее утверждение, чтобы увидеть, что происходит.

select owner, object_name, object_type 
    from all_objects 
    where object_name = 'BLAH'
union
select o.owner, o.object_name, o.object_type
    from all_synonyms s, all_objects o
    where synonym_name like 'BLAH'
      and o.owner = s.table_owner
      and o.object_name = s.table_name;

Я запустил в своей системе этот вывод (имена изменены, чтобы защитить неимущих).

OWNER   OBJECT_NAME    OBJECT_TYPE
------- -------------- -----------
PROD    T_BLAH         TABLE
PUBLIC  BLAH           SYNONYM

НТН.

0 голосов
/ 14 февраля 2019

Я уверен, что есть путаница с именем объекта. Пожалуйста, отметьте DBA_OBJECTS с именем объекта

USER_TABLES- таблицы принадлежат

ALL_TABLES - таблицы принадлежат, таблицы принадлежат другим пользователям с доступом к Вы

DBA_TABLES - все таблицы в базе данных

0 голосов
/ 14 февраля 2019

Попробуйте отключить и снова подключить сеанс и посмотрите, изменится ли результат.

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