Service SQL IBM i (AS/400) · Vue et Fonction table
QSYS2.SAVE_FILE_OBJECTS
Objets contenus dans les fichiers de sauvegarde
Liste les objets, bibliothèques et fichiers spoule contenus dans un ou plusieurs fichiers de sauvegarde (*SAVF), en vue ou en fonction de table.
À quoi ça sert
Ce service existe sous deux formes : une vue et une fonction de table. Les deux renvoient, pour chaque objet sauvegardé, le fichier de sauvegarde (SAVE_FILE_LIBRARY, SAVE_FILE), la bibliothèque, le nom, le type et l'attribut de l'objet, le texte, l'horodatage de sauvegarde, la taille, le propriétaire et les informations d'ASP, ainsi que le nom et le chemin pour les objets de bibliothèque de documents.
La fonction de table se pilote avec SAVE_FILE et SAVE_FILE_LIBRARY (*LIBL par défaut), les filtres OBJECT_NAME_FILTER et OBJECT_TYPE_FILTER (*ALL par défaut) et DETAILED_INFO (NONE par défaut). Avec DETAILED_INFO à ALL, on obtient des détails supplémentaires, comme les fichiers spoule sauvegardés dans une file de sortie. IGNORE_ERRORS vaut YES par défaut.
Le SQL permet de retrouver dans quel fichier de sauvegarde se trouve un objet, par exemple pour préparer une restauration, ce que l'affichage de chaque fichier avec DSPSAVF ne permet pas de faire en une seule requête.
Résultat réel sur un IBM i 7.5
Ce que nous avons exécuté :
SELECT OBJECT_NAME, OBJECT_TYPE, LIBRARY_NAME FROM TABLE(QSYS2.SAVE_FILE_OBJECTS(SAVE_FILE => 'DEMOSAVF', SAVE_FILE_LIBRARY => 'JOBISQL'))
Ce que l'IBM i a renvoyé le 01/10/2026 (3 lignes au plus) :
| OBJECT_NAME Nom de l'objet | OBJECT_TYPE Type de l'objet | LIBRARY_NAME Nom de la bibliothèque |
|---|---|---|
| DEMO | *DTAARA | JOBISQL |
| COMPTEUR | *DTAARA | JOBISQL |
| CLIENT | *FILE | JOBISQL |
Données anonymisées : les noms de système, de profils, de
bibliothèques, de postes et les adresses IP ont été remplacés. Les objets du schéma
JOBISQL sont des objets de démonstration créés pour ce site.
L'exemple d'IBM
Trouver tous les fichiers de sauvegarde qui contiennent des objets *FILE dont le nom commence par CUST, en soumettant la requête en traitement par lots (vue), ou lister les fichiers spoule sauvegardés dans le fichier de sauvegarde MYLIB/SAVF1 (fonction de table).
-- Description: Find all the save files used to save any *FILE objects with names
-- that begin with 'CUST'. Since this can be a long-running query, submit it as a
-- batch job. The RUNSQL CL command is used to run the SQL statement and return the
-- results in a table in MYLIB.
QSYS/SBMJOB CMD(QSYS/RUNSQL
SQL('CREATE TABLE MYLIB.SAVF_CUST AS (
SELECT SAVE_FILE_LIBRARY, SAVE_FILE, LIBRARY_NAME, OBJECT_NAME, SAVE_TIMESTAMP
FROM QSYS2.SAVE_FILE_OBJECTS
WHERE OBJECT_NAME LIKE ''CUST%'') WITH DATA')
COMMIT(*NONE)) JOB(SAVFLIST)
-- Description: List all the spooled files saved in the MYLIB/SAVF1 save file.
SELECT LIBRARY_NAME CONCAT '/' CONCAT OBJECT_NAME AS OUTPUT_QUEUE, SPOOLED_FILE_NAME,
SPOOLED_FILE_NUMBER, CREATE_TIMESTAMP
FROM TABLE (QSYS2.SAVE_FILE_OBJECTS(SAVE_FILE => 'SAVF1', SAVE_FILE_LIBRARY => 'MYLIB',
OBJECT_TYPE_FILTER => '*OUTQ', DETAILED_INFO => 'ALL'));
Bon à savoir
La requête sur la vue peut être longue, car elle lit le contenu de nombreux fichiers de sauvegarde. IBM recommande de la soumettre en traitement par lots et d'écrire le résultat dans une table, comme dans l'exemple avec RUNSQL. Préférez la fonction de table avec un fichier précis dès que vous le connaissez.
Paramètres
| Paramètre | Type | Par défaut | Signification |
|---|---|---|---|
SAVE_FILE |
VARCHAR(10) | obligatoire | Fichier de sauvegarde |
SAVE_FILE |
VARCHAR(10) | obligatoire | Fichier de sauvegarde |
SAVE_FILE_LIBRARY |
VARCHAR(10) | '*LIBL' | Bibliothèque du fichier de sauvegarde |
SAVE_FILE_LIBRARY |
VARCHAR(10) | '*LIBL' | Bibliothèque du fichier de sauvegarde |
OBJECT_NAME_FILTER |
VARCHAR(10) | '*ALL' | Filtre sur le nom de l'objet |
OBJECT_NAME_FILTER |
VARCHAR(10) | '*ALL' | Filtre sur le nom de l'objet |
OBJECT_TYPE_FILTER |
VARCHAR(7) | '*ALL' | Filtre sur le type d'objet |
OBJECT_TYPE_FILTER |
VARCHAR(7) | '*ALL' | Filtre sur le type d'objet |
DETAILED_INFO |
VARCHAR(4) | 'NONE' | Informations détaillées |
DETAILED_INFO |
VARCHAR(4) | 'NONE' | Informations détaillées |
IGNORE_ERRORS |
VARCHAR(3) | 'YES' | Ignorer les erreurs |
IGNORE_ERRORS |
VARCHAR(3) | 'YES' | Ignorer les erreurs |
Colonnes renvoyées (15)
Afficher les 15 colonnes
| Colonne | Type | Signification |
|---|---|---|
SAVE_FILE_LIBRARY |
VARCHAR(10) | Bibliothèque du fichier de sauvegarde |
SAVE_FILE |
VARCHAR(10) | Fichier de sauvegarde |
LIBRARY_NAME |
VARCHAR(10) | Nom de la bibliothèque |
OBJECT_NAME |
VARCHAR(10) | Nom de l'objet |
OBJECT_TYPE |
VARCHAR(7) | Type de l'objet |
OBJECT_ATTRIBUTE |
VARCHAR(10) | Attribut de l'objet |
TEXT_DESCRIPTION |
VARCHAR(50) | Texte descriptif |
SAVE_TIMESTAMP |
TIMESTAMP | Horodatage de la sauvegarde |
OBJECT_SIZE |
BIGINT | Taille de l'objet |
DATA_SAVED |
VARCHAR(3) | Données sauvegardées |
OBJECT_OWNER |
VARCHAR(10) | Propriétaire de l'objet |
DLO_NAME |
VARCHAR(20) | Nom de l'objet bibliothèque de documents (DLO) |
FOLDER_PATH |
VARCHAR(63) | Chemin du dossier |
IASP_NUMBER |
INTEGER | Numéro de l'ASP indépendant |
IASP_NAME |
VARCHAR(10) | Nom de l'ASP indépendant |