zOs/SQL/CATDEP

with o (lev, dType, dCreator, dName, bType, bCreator, bName) as         00010000
(   select 0, t.type, creator, name, '.', '', t.dbName                  00020000
        from sysibm.sysTables t                                         00030000
        where t.dbname like 'DSA%'                                      00040014
    union all select o.lev+1, d.dType, d.dCreator, d.dName,             00050000
                              o.dType, o.dCreator, o.dName              00060000
        from o, sysibm.sysviewdep d                                     00070000
        where d.bcreator = o.dCreator and d.bName = o.dName             00080000
             and o.lev < 999999                                         00090000
    union all select o.lev+1, a.Type, a.creator, a.name,                00100000
                              o.dType, o.dCreator, o.dName              00110000
        from o, sysibm.systables a                                      00120000
        where a.tbCreator = o.dCreator and a.tbName = o.dName           00130000
           and a.type = 'A' and o.lev < 999999                          00140000
    union all select o.lev+1, 'Y',  y.creator, y.name,                  00141002
                              o.dType, o.dCreator, o.dName              00142002
        from o, sysibm.sysSynonyms y                                    00143003
        where y.tbCreator = o.dCreator and y.tbName = o.dName           00144002
             and o.lev < 999999                                         00145002
) select                                                                00150013
         char(strip(k.dCollid) || '.' || strip(k.dName), 20),           00150408
         hex(k.dConToken),                                              00150510
         o.dType, char(strip(o.dCreator) || '.' || strip(o.dName), 30), 00150608
         o.bType, char(strip(o.bCreator) || '.' || strip(o.bName), 30), 00151013
         q.valid "va", q.operative "op",                                00152013
         char('or (pck_id = ''' || strip(k.dName)                       00153013
         || ''' and  PCK_CONSIST_TOKEN = ''' || hex(k.dConToken)        00154013
         || ''')', 70)                                                  00155013
    from o                                                              00160000
    left join sysibm.syspackdep k                                       00170006
    on k.bQualifier = o.dCreator and k.bName = o.dName                  00180007
    left join sysibm.syspackage q                                       00190009
    on q.Location = k.dLocation and q.collid = k.dCollid                00200008
        and q.name = k.dName and q.conToken = k.dConToken               00210008
    where o.dType = 'Y'                                                 00220008