fr en

Rechercher un source dans tous les fichiers sources de la machine avec QSYS2.SYSPARTITIONSTAT

Objectifs :

Il est, malheureusement, parfois nécessaire de rechercher un source sur toute une machine.
Cela arrive lorsque :

  • le source à rechercher n’est pas présent dans les fichiers sources du référentiel

  • le fichier source trouvé dans le référentiel ne correspond pas à l’objet compilé

Heureusement, la table QSYS2.SYSPARTITIONSTAT permet de facilement scanner tous les fichiers sources d’une machine et ainsi de rechercher un fichier source sur toute la machine en une seule requête .

Exemple :

SELECT SYSTEM_TABLE_SCHEMA, 
             SYSTEM_TABLE_NAME, 
             SYSTEM_TABLE_MEMBER
             SOURCE_TYPE, 
             NUMBER_ROWS,  
             CREATE_TIMESTAMP, 
             LAST_CHANGE_TIMESTAMP, 
             LAST_SOURCE_UPDATE_TIMESTAMP, 
             PARTITION_TEXT
  FROM QSYS2.SYSPARTITIONSTAT 
WHERE SYSTEM_TABLE_MEMBER LIKE ‘nom_du_source_à_rechercher%’;

Avec :
– SYSTEM_TABLE_SCHEMA :                   Bibliothèque du fichier source
– SYSTEM_TABLE_NAME :                       Fichier source
– SYSTEM_TABLE_MEMBER :                   Membre source
– SOURCE_TYPE :                                    Nombre de lignes dans le membre source
– LAST_CHANGE_TIME_STAMP :             Date et heure de modification du fichier source
– LAST_SOURCE_UPDATE_TIMESTAMP : Date et heure de modification du membre source
– PARTITION_TEXT :                                Texte descriptif du membre source

Bien sûr, la clause WHERE peut être enrichie si la recherche est plus ciblée :

SELECT SYSTEM_TABLE_SCHEMA, 
             SYSTEM_TABLE_NAME, 
             SYSTEM_TABLE_MEMBER
             SOURCE_TYPE, 
             NUMBER_ROWS,  
             CREATE_TIMESTAMP, 
             LAST_CHANGE_TIMESTAMP, 
             LAST_SOURCE_UPDATE_TIMESTAMP, 
             PARTITION_TEXT
  FROM QSYS2.SYSPARTITIONSTAT 
WHERE SYSTEM_TABLE_SCHEMA IN (‘ma_bibliothèque_1’ , ‘ma_bibliothèque_2’ , ‘ma_bibliothèque_3’)
    AND SYSTEM_TABLE_NAME LIKE ‘QRPG%’
    AND SYSTEM_TABLE_MEMBER LIKE ‘nom_du_source_à_rechercher%’;