列出我的数据库中的所有表和列 (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_name
和 column_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)的主要内容,如果未能解决你的问题,请参考以下文章