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


当前回答

我正在寻找一个包含所有列名的列表,这些列名属于一个模式表,按照列id的顺序排序。

这是我使用的查询:-

SELECT COLUMN_NAME
FROM ALL_TAB_COLUMNS
WHERE OWNER = 'schema_owner_username' AND TABLE_NAME='table_name'
ORDER BY COLUMN_ID ASC;

其他回答

为当前用户选择表的简单查询:

  SELECT table_name FROM user_tables;
select * from dba_tables

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

实际上,可以通过SQL查询获得表列表。也可以通过允许生成数据字典的工具来做到这一点,例如ERWIN, Toad data Modeler或ERBuilder。使用这些工具,除了表名之外,您还将拥有字段,它们的类型,对象,如(触发器,序列,域,视图…)

下面的步骤来生成你的表格定义:

您必须对数据库进行逆向工程 在Toad数据建模器中:菜单->文件->逆向工程->逆向工程向导 在ERBuilder数据建模器中:菜单->文件->逆向工程

您的数据库将在软件中显示为实体关系图。

生成包含Tables定义的数据字典 在Toad data modeler中:菜单->模型->生成报告->运行 在ERBuilder数据建模器:菜单->工具->生成模型文档

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

tabs
dba_tables
all_tables
user_tables

执行以下命令:

显示Oracle数据库中的所有表

SELECT table_name FROM dba_tables;

显示当前用户拥有的表

SELECT table_name FROM user_tables;

显示当前用户可以访问的表

sql> SELECT table_name FROM all_tables