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 :
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%’