Aller au contenu

Service SQL IBM i (AS/400) · Fonction table

QSYS2.REMOVE_USER_INDEX_ENTRY

Supprimer des entrées d'un index utilisateur

Retire des entrées d'un index utilisateur (*USRIDX) selon une opération de comparaison sur la clé, et renvoie la liste des entrées supprimées.

À quoi ça sert

Cette fonction de table supprime des entrées d'un index utilisateur désigné par USER_INDEX et USER_INDEX_LIBRARY. Le paramètre OPERATION indique le critère de comparaison (par exemple LT pour inférieur à), appliqué à REMOVE_VALUE ; REMOVE_VALUE_END sert pour une plage de valeurs.

MAX_REMOVE limite le nombre d'entrées supprimées. La fonction renvoie une ligne par entrée retirée (REMOVED_ENTRY et sa version binaire REMOVED_ENTRY_BINARY), ce qui permet de garder une trace de ce qui a été supprimé.

Résultat réel sur un IBM i 7.5

Ce que nous avons exécuté :

CALL QSYS2.ADD_USER_INDEX_ENTRY(USER_INDEX => 'DEMOIDX3', USER_INDEX_LIBRARY => 'JOBISQL', REPLACE => 'YES', ENTRY => 'Entrée à retirer', KEY => '09999');
SELECT * FROM TABLE(QSYS2.REMOVE_USER_INDEX_ENTRY(USER_INDEX => 'DEMOIDX3', USER_INDEX_LIBRARY => 'JOBISQL', OPERATION => 'EQ', REMOVE_VALUE => '09999')) X

Ce que l'IBM i a renvoyé le 01/10/2026 (1 ligne au plus) :

ORDINAL_POSITION Position ordinale USER_INDEX_LIBRARY Bibliothèque de l'index utilisateur USER_INDEX Nom de l'index utilisateur REMOVED_ENTRY Entrée retirée REMOVED_ENTRY_BINARY Entrée retirée en binaire
1 JOBISQL UTIL913 09999Entrée à retirer F0F9F9F9F9C595A399C085407C409985A389998599

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

Supprimer toutes les entrées d'index dont la clé est inférieure à '00173'.

-- Description: Remove all index entries with a key value less than '00173'. 
     SELECT * FROM TABLE(QSYS2.REMOVE_USER_INDEX_ENTRY(USER_INDEX => 'USRIX1',  
                                                  USER_INDEX_LIBRARY => 'APPLIB',  
                                                  OPERATION => 'LT',  
                                                  REMOVE_VALUE => '00173'));

Bon à savoir

La suppression est effective dès l'exécution de la requête. Testez d'abord votre critère avec QSYS2.USER_INDEX_ENTRIES pour voir quelles entrées seraient concernées.

Paramètres

ParamètreTypePar défautSignification
USER_INDEX VARCHAR(10) obligatoire Nom de l'index utilisateur
USER_INDEX_LIBRARY VARCHAR(10) obligatoire Bibliothèque de l'index utilisateur
OPERATION VARCHAR(7) obligatoire Opération
REMOVE_VALUE VARCHAR(2000) NULL Valeur de l'entrée à retirer
REMOVE_VALUE_END VARCHAR(2000) NULL Fin de la plage de valeurs à retirer
MAX_REMOVE INTEGER - 1 Nombre maximal d'entrées à supprimer

Colonnes renvoyées (5)

Afficher les 5 colonnes
ColonneTypeSignification
ORDINAL_POSITION INTEGER Position ordinale
USER_INDEX_LIBRARY VARCHAR(10) Bibliothèque de l'index utilisateur
USER_INDEX VARCHAR(10) Nom de l'index utilisateur
REMOVED_ENTRY VARCHAR(2000) Entrée retirée
REMOVED_ENTRY_BINARY BINARY VARYING Entrée retirée en binaire