Aller au contenu

Service SQL IBM i (AS/400) · Procédure

QSYS2.CREATE_USER_INDEX

Créer un index utilisateur

Crée un index utilisateur (objet *USRIDX) en SQL : type d'entrée, longueur d'entrée et de clé, taille, optimisation et droit public.

À quoi ça sert

Un index utilisateur est un objet qui stocke des entrées triées sur une clé, souvent utilisé par des programmes système ou des API. La procédure QSYS2.CREATE_USER_INDEX le crée sans passer par une API ni un programme dédié.

Les paramètres obligatoires sont USER_INDEX, USER_INDEX_LIBRARY et ENTRY_TYPE (par exemple VARIABLE). On précise ensuite MAXIMUM_ENTRY_LENGTH, KEY_LENGTH (0 par défaut), INDEX_SIZE (4 GB par défaut), OPTIMIZATION, IMMEDIATE_UPDATE, TRACK_USAGE, le texte et PUBLIC_AUTHORITY (*LIBCRTAUT par défaut). REPLACE vaut NO par défaut.

La procédure crée un objet dans la bibliothèque indiquée et n'a pas de mode aperçu (PREVIEW).

Résultat réel sur un IBM i 7.5

Ce que nous avons exécuté :

CALL QSYS2.CREATE_USER_INDEX(USER_INDEX => 'DEMOIDX2', USER_INDEX_LIBRARY => 'JOBISQL', ENTRY_TYPE => 'VARIABLE', MAXIMUM_ENTRY_LENGTH => 120, KEY_LENGTH => 5, TEXT_DESCRIPTION => 'Index créé par CREATE_USER_INDEX');
SELECT USER_INDEX_LIBRARY, USER_INDEX, ENTRY_TYPE, ENTRY_LENGTH, MAXIMUM_ENTRY_LENGTH, KEY_INSERTION, KEY_LENGTH, ENTRY_TOTAL, TEXT_DESCRIPTION FROM QSYS2.USER_INDEX_INFO WHERE USER_INDEX_LIBRARY = 'JOBISQL'

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

USER_INDEX_LIBRARY USER_INDEX ENTRY_TYPE ENTRY_LENGTH MAXIMUM_ENTRY_LENGTH KEY_INSERTION KEY_LENGTH ENTRY_TOTAL TEXT_DESCRIPTION
JOBISQL UTIL908 FIXED 50 50 YES 5 3 Index utilisateur de demonstration
JOBISQL UTIL909 VARIABLE 0 2000 YES 5 0 Index créé par CREATE_USER_INDEX

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

Créer l'index utilisateur USRIX1 dans APPLIB pour des entrées de longueur variable (120 caractères au plus, clé de 5 caractères) avec le droit public *EXCLUDE.

-- Description: Create user space USRIX1 in APPLIB to contain variable-length entries. 
     -- The maximum length of an entry is 120 characters. The key is 5 characters long. 
     -- Assign *EXCLUDE public authority to the *USRIDX object. 
   CALL QSYS2.CREATE_USER_INDEX(USER_INDEX => 'USRIX1',  
                             USER_INDEX_LIBRARY => 'APPLIB', 
                             ENTRY_TYPE => 'VARIABLE', 
                             MAXIMUM_ENTRY_LENGTH => 120,  
                             KEY_LENGTH => 5,  
                             PUBLIC_AUTHORITY => '*EXCLUDE');

Bon à savoir

Pensez à PUBLIC_AUTHORITY => '*EXCLUDE' si l'index ne doit pas être lisible par tous : la valeur par défaut (*LIBCRTAUT) reprend le droit de création de la bibliothèque.

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
ENTRY_TYPE VARCHAR(8) obligatoire Type de l'entrée
MAXIMUM_ENTRY_LENGTH INTEGER NULL Longueur maximale d'une entrée
KEY_LENGTH INTEGER 0 Longueur de la clé
INDEX_SIZE VARCHAR(4) '4 GB' Taille de l'index
REPLACE VARCHAR(3) 'NO' Remplacer l'entrée existante
INDEX_ATTRIBUTE VARCHAR(10) NULL Attribut de l'index
OPTIMIZATION VARCHAR(10) 'RANDOM' Optimisation
IMMEDIATE_UPDATE VARCHAR(3) 'NO' Mise à jour immédiate
TRACK_USAGE VARCHAR(3) 'NO' Suivi de l'utilisation
TEXT_DESCRIPTION VARCHAR(50) NULL Texte descriptif
PUBLIC_AUTHORITY VARCHAR(10) '*LIBCRTAUT' Droit public sur l'objet
OBJECT_DOMAIN VARCHAR(10) '*DEFAULT' Domaine de l'objet