Thursday, May 14, 2026

DB2 SQL to find tables used by a program

Below SQL to returns the list of tables used by a latest version of a program 

WITH TEMP(COLLID, NAME, CONTOKEN) AS(                    
     SELECT COLLID, NAME, CONTOKEN                       
     FROM SYSIBM.SYSPACKAGE                              
     WHERE (LOCATION,COLLID,NAME,BINDTIME) IN (          
           SELECT LOCATION,COLLID,NAME,MAX(BINDTIME)     
           FROM SYSIBM.SYSPACKAGE                        
           WHERE NAME = 'program_name'                       
          GROUP BY LOCATION,COLLID,NAME                  
       )                                                 
)                                                        
SELECT SUBSTR(T.NAME,1,8) AS PROGRAM,                    
SUBSTR(BQUALIFIER,1,8) AS QUALIFIER,                     
 SUBSTR(BNAME,1,30) AS TBL_NAME,                         
 BTYPE                                                   
 FROM SYSIBM.SYSPACKDEP,TEMP T                           
WHERE DCOLLID = T.COLLID                                 
 AND  DNAME   =  T.NAME                                  
 AND  DCONTOKEN = T.CONTOKEN                             
 AND BTYPE = 'T'                                         
WITH UR;