Service SQL IBM i (AS/400) · Procédure
QSYS2.CHANGE_USER_SPACE
Modifier le contenu d'un espace utilisateur
Procédure qui écrit des données dans un espace utilisateur (*USRSPC) à partir d'une position donnée, sans programme d'API.
À quoi ça sert
Cette procédure remplace une partie du contenu de l'espace utilisateur USER_SPACE de la bibliothèque USER_SPACE_LIBRARY : DATA contient les données à écrire et START_POSITION (défaut 1) indique à partir de quel octet. L'exemple d'IBM écrit une chaîne à partir du 500e octet.
Le paramètre FORCE (défaut 'NO') permet de forcer l'écriture. La procédure modifie l'objet : elle remplace l'API correspondante pour corriger un espace utilisateur depuis une session SQL. Le contenu se relit avec QSYS2.USER_SPACE.
Résultat réel sur un IBM i 7.5
Ce que nous avons exécuté :
CALL QSYS2.CHANGE_USER_SPACE(USER_SPACE => 'DEMOSPC', USER_SPACE_LIBRARY => 'JOBISQL', DATA => 'Texte écrit par CHANGE_USER_SPACE (démo).', START_POSITION => 1);
SELECT USER_SPACE_LIBRARY, USER_SPACE, SUBSTR(DATA, 1, 40) AS DEBUT_DES_DONNEES FROM TABLE(QSYS2.USER_SPACE(USER_SPACE => 'DEMOSPC', USER_SPACE_LIBRARY => 'JOBISQL')) X
Ce que l'IBM i a renvoyé le 01/10/2026 (1 ligne au plus) :
| USER_SPACE_LIBRARY | USER_SPACE | DEBUT_DES_DONNEES |
|---|---|---|
| JOBISQL | UTIL907 | Texte écrit par CHANGE_USER_SPACE (démo) |
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
Modifier le contenu de l'espace utilisateur USRSPC1 de APPLIB, en plaçant la chaîne indiquée à partir du 500e octet.
-- Description: Modify the content of user space USRSPC1 in APPLIB, placing the
-- specified string starting at the 500th byte in the space.
CALL QSYS2.CHANGE_USER_SPACE(USER_SPACE => 'USRSPC1',
USER_SPACE_LIBRARY => 'APPLIB',
DATA => 'Overwrite with this new value',
START_POSITION => 500);
Paramètres
| Paramètre | Type | Par défaut | Signification |
|---|---|---|---|
USER_SPACE |
VARCHAR(10) | obligatoire | Nom de l'espace utilisateur |
USER_SPACE_LIBRARY |
VARCHAR(10) | obligatoire | Bibliothèque de l'espace utilisateur |
DATA |
CHAR LARGE OBJECT | obligatoire | Données |
START_POSITION |
INTEGER | 1 | Position de départ |
FORCE |
VARCHAR(5) | 'NO' | Forcer l'opération |