列出我的数据库中的所有表和列 (ORACLE)

Posted

技术标签:

【中文标题】列出我的数据库中的所有表和列 (ORACLE)【英文标题】:Listing All Tables and Columns from my Database (ORACLE) 【发布时间】:2016-04-20 14:48:22 【问题描述】:

我想知道如何列出我的 ORACLE 数据库中的所有表和列但是通过将所有这些信息“分组”到一个表中?一个包含两列的表:一列包含表的名称,另一列包含该表中的所有列。谢谢。

例如:

TABLE_NAME 列

表 A => 列列表

表 B => 列列表

表 C => 列列表

这是我列出 ORACLE 数据库中所有表的方式:

SELECT TABLE_NAME FROM USER_TABLES;

这就是我列出我的 ORACLE 数据库中一张表的所有列的方式:

SELECT column_name
FROM user_tab_cols
WHERE table_name = 'TABLE_NAME';

【问题讨论】:

user_tab_cols 有什么问题。您已经找到 table_namecolumn_name 的 2 列。那你错过了什么? @Ariana:Aツ 是对的。但是,如果您想知道仅存在于 user_tab_cols 中的其他信息,您可以使用 table_name 字段加入两个表 我更新了我的帖子。我想要的是将两个选择的信息“分组”到一个表中。 加入表并按表名排序结果。如果您确实需要为每个表设置一行,请使用更合适的东西来重新排列结果。例如,我可以使用 ColdFusion 在 5 分钟内完成。 看起来你的问题不是你的问题。 string aggregate oracle是你应该用你最喜欢的工具搜索的。 【参考方案1】:

使用listagg 将表中的所有列名作为列表获取。

create table table_column_list as 
SELECT table_name,listagg(column_name,',') within group(order by column_id) column_list
FROM user_tab_cols
group by table_name;

【讨论】:

同时,这正是我做出的选择。无论如何谢谢:)

以上是关于列出我的数据库中的所有表和列 (ORACLE)的主要内容,如果未能解决你的问题,请参考以下文章

sql Oracle所有表和列

如何回滚到以前的迁移并删除架构中的表和列?

数据库、表和列的命名约定? [关闭]

Hibernate MySQL 查找未映射的表和列

Laravel - 数据库、表和列命名约定?

oracle查看表和列的描述