select f1.view_name, f2.view_name, f3.view_name, f1.src || f2.src || f3.src from
(select view_name, '' src from dba_views where view_name like 'DBA_%') f1
full outer join
(select view_name, '' src from dba_views where view_name like 'ALL_%') f2
on substr(f1.view_name, 4) = substr(f2.view_name, 4)
full outer join
(select distinct trim(view_name) view_name, '' src from user_views where view_name like 'USER_%') f3
on substr(f2.view_name, 4) = substr(f3.view_name, 5) or substr(f1.view_name, 4) = substr(f3.view_name, 5)
order by COALESCE(substr(f1.view_name, 4), substr(f2.view_name, 4), substr(f3.view_name, 5))
/
Dba Views