Service SQL IBM i (AS/400) · Fonction table
SYSTOOLS.SPLIT
Découper une chaîne en éléments
Découpe une chaîne en plusieurs lignes selon un séparateur, avec la position de chaque élément : pratique pour traiter des listes.
À quoi ça sert
Cette fonction de table prend une liste (INPUT_LIST), un délimiteur (DELIMITER) et un caractère d'échappement facultatif (ESCAPE), et renvoie une ligne par élément avec sa position (ORDINAL_POSITION) et sa valeur (ELEMENT).
On s'en sert pour transformer une valeur composite en lignes exploitables : une liste de bibliothèques séparées par des virgules, un paramètre multiple reçu d'une application, des mots d'un texte. On la joint ensuite à d'autres tables comme n'importe quelle fonction de table.
Résultat réel sur un IBM i 7.5
Ce que nous avons exécuté :
SELECT * FROM TABLE(SYSTOOLS.SPLIT('QSYS2,SYSTOOLS,QGPL,JOBISQL', ',')) X
Ce que l'IBM i a renvoyé le 01/10/2026 (4 lignes au plus) :
| ORDINAL_POSITION Position ordinale | ELEMENT Élément |
|---|---|
| 1 | QSYS2 |
| 2 | SYSTOOLS |
| 3 | QGPL |
| 4 | 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
Découper la chaîne « This is a test string » en segments en utilisant l'espace comme séparateur.
-- Description: Break a string into segments, using blank as the separating character.
SELECT * FROM TABLE(SYSTOOLS.SPLIT('This is a test string', ' '))
ORDER BY ORDINAL_POSITION;
Bon à savoir
Trier sur ORDINAL_POSITION pour retrouver l'ordre d'origine des éléments.
Paramètres
| Paramètre | Type | Par défaut | Signification |
|---|---|---|---|
INPUT_LIST |
CHAR LARGE OBJECT | obligatoire | Liste à découper |
DELIMITER |
VARCHAR(32672) | obligatoire | Délimiteur |
ESCAPE |
CHAR(1) | NULL | Caractère d'échappement |
Colonnes renvoyées (2)
Afficher les 2 colonnes
| Colonne | Type | Signification |
|---|---|---|
ORDINAL_POSITION |
BIGINT | Position ordinale |
ELEMENT |
CHAR LARGE OBJECT | Élément |