zOs/SQL/VIEWDEP
with o (lev, dType, dCreator, dName, bType, bCreator, bName) as
( select 0, t.type, creator, name, '.', '', t.dbName
from sysibm.sysTables t
where t.type = 'T' and t.dbname like 'DGDB9998%'
-- and (t.dbname like 'BJA_0001'
-- or t.dbname = 'DBJ01' or t.dbname like 'DNF%')
union all select o.lev+1, d.dType, d.dCreator, d.dName,
o.dType, o.dCreator, o.dName
from o, sysibm.sysviewdep d
where d.bcreator = o.dCreator and d.bName = o.dName
-- and d.bType = o.dType
and o.lev < 999999
union all select o.lev+1, a.Type, a.creator, a.name,
o.dType, o.dCreator, o.dName
from o, sysibm.systables a
where a.tbCreator = o.dCreator and a.tbName = o.dName
and a.type = 'A' and o.lev < 999999
)
select distinct dType, char(dCreator, 12), char(dName, 20)
, bType, char(bCreator, 12), char(bName, 20)
from o
-- where dType = 'A' -- and bCreator <> 'ODV'
order by 3, 2
;
select min(lev), dType, char(dCreator, 12), char(dName, 20)
-- , bType, char(bCreator, 12), char(bName, 20)
from o
group by dType, dCreator, dName
order by dName, 1
;
select min(lev), -- count(*),
dType, char(strip(dCreator)||'.'|| dName, 30)
from o
group by dType, dCreator, dName
order by dName, dCreator
;