如何获取Oracle中所有表的所有列名称?

问题描述

想知道如何在一个Oracle数据库中获取所有列名,数据类型以及从哪些表中获取数据

下面是针对MySQL数据库的,我正在寻找与Oracle数据库相同的东西。

select * from information_schema.columns
where table_schema = 'your_db'
order by table_name,ordinal_position

解决方法

您可以使用

SELECT *
  FROM user_tab_cols
 ORDER BY table_name,column_name,column_id

连接到要从中获取相关信息的架构后。

,

您可以使用以下查询,

以下查询将为您提供特定模式的表:

select ut.*,uc.*
  from user_tables ut
  join user_tab_cols uc
    on ut.table_name = uc.table_name
 where lower(ut.table_name) = 'table_name'
 order by ut.table_name,uc.internal_column_id;

以下查询将为您提供当前架构的所有表的列表以及您也可以从其他模式访问的表

select *
  from all_tables ut
  join all_tab_cols uc
    on ut.table_name = uc.table_name
 where ut.owner = '<schema_name_in_upper>'
 order by ut.table_name,uc.internal_column_id;

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...