如何查询Oracle数据库以显示Oracle数据库中所有表的名称?


当前回答

select * from dba_tables

仅当您登录的用户具有sysdba权限时,才提供所有用户的所有表。

其他回答

    select object_name from user_objects where object_type='TABLE';

---------------- 或 ------------------

    select * from tab;

---------------- 或 ------------------

    select table_name from user_tables;

当前用户登录模式中的表

select * from tabs;

查询user_tables和dba_tables无效。 这一个做到了:

select table_name from all_tables  
select * from all_all_tables

开头附加的“all”给出了额外的3列,分别是:

OBJECT_ID_TYPE
TABLE_TYPE_OWNER
TABLE_TYPE

有了这些,你可以选择:

SELECT DISTINCT OWNER, OBJECT_NAME 
    FROM DBA_OBJECTS 
    WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME';

SELECT DISTINCT OWNER, OBJECT_NAME 
    FROM ALL_OBJECTS 
    WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME';