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


当前回答

包括视图:

SELECT owner, table_name as table_view
  FROM dba_tables
UNION ALL
SELECT owner, view_name as table_view
  FROM DBA_VIEWS

其他回答

当前用户登录模式中的表

select * from tabs;

试试下面的数据字典视图。

tabs
dba_tables
all_tables
user_tables

有了这些,你可以选择:

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

我们可以从下面的查询中获得所有的表,包括列的详细信息:

SELECT * FROM user_tab_columns;
select * from all_all_tables

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

OBJECT_ID_TYPE
TABLE_TYPE_OWNER
TABLE_TYPE