Oracle - all_tables不完整?

时间:2012-03-09 11:54:18

标签: sql database oracle oracle11g

all_tables如何显示实际上不包含所有表的列表?

我可以select * from blah;desc blah。 但是select * from all_tables where lower(table_name) = 'blah';会返回0行。

blah不是同义词或视图,而是表格。

是否需要运行特定的stats命令,以便我的用户可以查询的所有表都显示在all_tables中?

3 个答案:

答案 0 :(得分:3)

您可以尝试以下语句来查看正在发生的事情。

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

HTH。

答案 1 :(得分:0)

我确定对象名称存在混淆。 请使用对象名称

检入DBA_OBJECTS
  

USER_TABLES-拥有的表

     

ALL_TABLES-表拥有,其他用户拥有表拥有权,可以访问   你

     

DBA_TABLES-数据库中的所有表

答案 2 :(得分:-2)

尝试断开并重新连接会话,然后查看结果是否更改。