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


当前回答

尝试从user_tables中选择,其中列出了当前用户拥有的表。

其他回答

Oracle数据库显示所有表的名称使用下面的查询

SELECT owner, table_name FROM dba_tables;

SELECT owner, table_name FROM all_tables;

SELECT table_name FROM user_tables;

访问更多信息:http://www.plsqlinformation.com/2016/08/get-list-of-all-tables-in-oracle.html

尝试从user_tables中选择,其中列出了当前用户拥有的表。

我找不到一个有用的答案

DBA_ALL_TABLES (ALL_ALL_TABLES/USER_ALL_TABLES)

所以决定加上我的版本。 这个视图实际上返回比DBA_TABLES更多的数据,因为它也返回对象表(http://docs.oracle.com/cd/E11882_01/server.112/e40402/statviews_1003.htm)。

有了这些,你可以选择:

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

下面是一个注释的SQL查询片段,描述了如何使用选项:

-- need to have select catalog role
SELECT * FROM dba_tables;

-- to see tables of your schema
SELECT * FROM user_tables;

-- tables inside your schema and tables of other schema which you possess select grants on
SELECT * FROM all_tables;