menu

arrow_back Comment récupérer un élément d'un ensemble d'éléments concaténés et séparés par un caractère dans une chaine de caractères, en sql ou en rpgle ?

par Averti
(979 points) 2 30 35
dans Programmation
edité par
0 votes
Je possède des colonnes chaines de caractères composées de plusieurs éléments comme suit : 'FRA_STATEMENT_31801_202202_489502' je voudrais extraire par SQL ou RPG le 3ème élément ('31801'). Comment faire ?

2 Réponses

par Actif
(360 points) 13 26
sélectionné par
 
Meilleure réponse
1 vote

Bonjour Denis,

En SQL, peut-être avec la fonction table SPLIT:

https://www.ibm.com/docs/en/i/7.3?topic=services-split-table-function

et En RPG, il existe une fonction similaire %SPLIT:

https://www.rpgpgm.com/2021/05/new-rpg-built-in-function-to-split.html


Cordialement,

Olivier.

par Averti
(979 points) 2 30 35
edité par
2 votes
Effectivement,

EXEC SQL
  VALUES (
    SELECT TRIM(T.ELEMENT) AS ELEMENT
    FROM TABLE ( SYSTOOLS.SPLIT(:P_CHAINE, :P_SEP) ) AS T
    WHERE T.ORDINAL_POSITION = :P_ELEMENT
  )
  INTO :CHAINE;

renvoie bien l'élément demandé.

Pour RPG, pas encore essayé car demande une TR récente.

Par contre si on crée une nouvelle fonction sql avec il faut qu'elle soit définie avec READS SQL DATA.

Questions liées

0 votes
1 réponse 148 vues
Comment récupérer un tableau entier dans une zone unique de type caractères ?Bonjour, je dois charger un tableau de 10 postes de 3 caractères puis récupérer celui-ci pour alimenter un paramètre d'un prog ...
par Denis Averti
(979 points)
06-Juillet-2018 posée dans Programmation
1 vote
1 réponse 110 vues
En SQL, comment conserver les 0 non significatifs lorsque l'on convertit un numérique en chaine de caractères ?Bonjour, je souhaite retrouver l'équivalent de la fonction RPGLE %editc(unNumerique:'X') en SQL. Existe-t-il une fonction pour faire la même chose ? ...
par Denis Averti
(979 points)
27-Mai-2021 posée dans Programmation
0 votes
1 réponse 134 vues
En RPG, comment s'utilise le mot-clef Qualified dans une déclaration de fichier?Bonjour, Quel impact a le mot-clef Qualified dans une déclaration de fichier sur les ordres de lecture, ecriture, update? Cordialement, ...
par ibmiiste Confirmé
(1.4k points)
20-Septembre-2019 posée dans Programmation
0 votes
2 réponses 462 vues
Comment créer une table temporaire en sql et la remplacer si elle existe déjàBonjour, je souhaite créer grâce à SQL dans un programme RPG une table temporaire (dans QTEMP) et écraser une éventuelle table ...
par Denis Averti
(979 points)
06-Juillet-2018 posée dans Base de données
0 votes
1 réponse 204 vues
Comment gérer des colonnes d'une table en tableau dans un programme RPG ?Bonjour, il existe dans une table 20 colonnes que l'on voudrait pouvoir traiter dans un programme comme un tableau : Counter_01 NUM(18,2) DEFAULT NULL, ...
par Denis Averti
(979 points)
02-Avril-2020 posée dans Programmation