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

5
我想知道如何将我ORACLE数据库中的所有表和列按“分组”方式列出在一个表格中。这个表格有两列:一列是表名,另一列是该表中的所有列。谢谢。 例如:

表名 列

表A => 列表

表B => 列表

表C => 列表

以下是我列出ORACLE数据库中所有表的方法:
SELECT TABLE_NAME FROM USER_TABLES;

以下是如何列出 ORACLE 数据库中一个表格的所有列:

SELECT column_name
FROM user_tab_cols
WHERE table_name = 'TABLE_NAME';

5
user_tab_cols有什么问题?你已经找到了包含“table_name”和“column_name”两列的表。那你还缺少什么? - A ツ
@Ariana:Aツ是对的。但如果你想知道仅在user_tab_cols中存在的其他信息,你可以使用table_name字段JOIN两个表。 - Joe Taras
我更新了我的帖子。我想要的是将这两个选择器的信息“分组”到一个表中。 - Ariana
将表格连接起来,并按照table_name对结果进行排序。如果你确实需要每个表格的单行数据,可以使用更适合重新排列结果的方法。例如,我可以在5分钟内使用ColdFusion完成这个任务。 - Dan Bracuk
1
看起来你的问题不是你的问题。你应该用你喜欢的工具搜索“string aggregate oracle”。 - A ツ
1个回答

3

使用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;

与此同时,这正是我所编写的选择语句。无论如何,还是谢谢你 :) - Ariana

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接