1. 在12G 之前可以使用如下代码实现列合并:
select a.TABLE_NAME,wm_concat(b.column_Name)as columns from user_tables a inner join user_tab_cols b on a.TABLE_NAME=b.TABLE_NAME group by a.TABLE_NAME
2. 在12G 版本之后用listagg聚合函数代替:
select a.TABLE_NAME,listagg(b.column_Name,',') as columns from user_tables a inner join user_tab_cols b on a.TABLE_NAME=b.TABLE_NAME group by a.TABLE_NAME
3. 当这个值过长时需要使用 xmlagg 来代替:
select a.TABLE_NAME,'HUPDATETIME',0,1,rtrim(xmlagg(XMLELEMENT(e,b.column_Name,',').EXTRACT('//text()')).getclobval(),',') as data_columns,null,null,null
from user_tables a
inner join user_tab_cols b on a.TABLE_NAME=b.TABLE_NAME
group by a.TABLE_NAME