| Register | FAQ | Calendar | Search | Today's Posts | Mark Forums Read |
|
#1
|
| Hi all, I'm running db2 9 on windows. I'm looking for a query to find dependencies between stored procedures. For instance if I have a procedure P that calls p1 and p2, I'd like to know that. I was looking at syscat.routinedep and syscat.packagedep but they don't seem to do the job. Even if P needs p1 and p2 to compile, it is still listed only once in the syscat.routindep catalog. Apparently this view is designed to keep the dependencies between routines and packages rather that dependencies between routines Also, the syscat.packagedep show only dependencies to views, tables, etc, but not to other packages. Is there any way I can query this? Thanks! |
|
#2
|
| On Oct 28, 11:23*pm, "Jon.Hakki...@gmail.com" wrote: > Hi all, > > I'm running db2 9 on windows. > I'm looking for a query to find dependencies between stored > procedures. > For instance if I have a procedure P that calls p1 and p2, I'd like to > know that. > I was looking at syscat.routinedep and syscat.packagedep but they > don't seem to do the job. > Even if P needs p1 and p2 to compile, it is still listed only once in > the syscat.routindep catalog. Apparently this view is designed to keep > the dependencies between routines and packages rather that > dependencies between routines > Also, the syscat.packagedep show only dependencies to views, tables, > etc, but not to other packages. > Is there any way I can query this? Thanks! Hi Jon, Package for routine P will depend on routines P1 and P2. So you have to find that package and look at all routine instances which this package depends on: SELECT C.ROUTINESCHEMA, C.ROUTINENAME FROM SYSCAT.ROUTINES R JOIN SYSCAT.ROUTINEDEP D ON R.ROUTINESCHEMA=D.ROUTINESCHEMA AND R.SPECIFICNAME=D.SPECIFICNAME JOIN SYSCAT.PACKAGEDEP P ON P.PKGSCHEMA=D.BSCHEMA AND P.PKGNAME=D.BNAME JOIN SYSCAT.ROUTINES C ON P.BSCHEMA=C.ROUTINESCHEMA AND P.BNAME=C.SPECIFICNAME WHERE R.ROUTINESCHEMA='your_schema' and R.ROUTINENAME='P' AND D.BTYPE='K' AND P.BTYPE='F' Hope this help. Sincerely, Mark B. |
|
#3
|
| On Oct 29, 6:09*am, 4.s...@mail.ru wrote: > On Oct 28, 11:23*pm, "Jon.Hakki...@gmail.com" > wrote: > > > > > Hi all, > > > I'm running db2 9 on windows. > > I'm looking for a query to find dependencies between stored > > procedures. > > For instance if I have a procedure P that calls p1 and p2, I'd like to > > know that. > > I was looking at syscat.routinedep and syscat.packagedep but they > > don't seem to do the job. > > Even if P needs p1 and p2 to compile, it is still listed only once in > > the syscat.routindep catalog. Apparently this view is designed to keep > > the dependencies between routines and packages rather that > > dependencies between routines > > Also, the syscat.packagedep show only dependencies to views, tables, > > etc, but not to other packages. > > Is there any way I can query this? Thanks! > > Hi Jon, > > Package for routine P will depend on routines P1 and P2. > So you have to find that package and look at all routine instances > which this package depends on: > > SELECT C.ROUTINESCHEMA, C.ROUTINENAME > FROM SYSCAT.ROUTINES R > JOIN SYSCAT.ROUTINEDEP D ON R.ROUTINESCHEMA=D.ROUTINESCHEMA AND > R.SPECIFICNAME=D.SPECIFICNAME > JOIN SYSCAT.PACKAGEDEP P ON P.PKGSCHEMA=D.BSCHEMA AND > P.PKGNAME=D.BNAME > JOIN SYSCAT.ROUTINES C ON P.BSCHEMA=C.ROUTINESCHEMA AND > P.BNAME=C.SPECIFICNAME > WHERE R.ROUTINESCHEMA='your_schema' and R.ROUTINENAME='P' AND > D.BTYPE='K' > AND P.BTYPE='F' > > Hope this help. > > Sincerely, > Mark B. Great, it works like a charm, thanks a lot!! |
![]() |
| Thread Tools | |
| Display Modes | |