我想知道如何列出ORACLE数据库中的所有表和列,但是将所有这些信息“分组”到一个表?一个包含两列的表:一列包含表的名称,另一列包含该表中的所有列。谢谢。
例如:
TABLE_NAME COLUMNS
表A =>栏目列表
表B =>栏目列表
表C =>栏目列表
这是我列出ORACLE数据库中所有表的方法:
SELECT TABLE_NAME FROM USER_TABLES;
这是我列出ORACLE数据库中其中一个表的所有列的方法:
SELECT column_name
FROM user_tab_cols
WHERE table_name = 'TABLE_NAME';
答案 0 :(得分: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;