Bonjour à tous,

Je n'arrive pas à trouver la requête qui me permettrait de résoudre le problème suivant.

J'ai une colonne message_in(CLOB) qui contient 8 champs séparés par des ";"

0002 ;prov_b;497814;500783500000000;true;PRT;Wed May 01 04:24:04 CET 1974;6011;
(notez bien qu'il y a 8 ";" et non pas 7)

Je souhaiterai ne récupérer que les 4 premiers champs concaténés aux 3 derniers.

Le problème est double :
1-Trouver la requête en soi.
2-Trouver la bonne regexp

Je tourne autour du pot, mais impossible de finaliser.

L'idée est de faire un truc comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
CONCAT(
REGEXP_SUBSTR(TO_CHAR(message_in),'^(([a-zA-Z0-9_ :])*;){4}',1),
REGEXP_SUBSTR(TO_CHAR(message_in),'^(([a-zA-Z0-9_ :])*;){4}(([a-zA-Z0-9_ :])*;){1}(([a-zA-Z0-9_ :])*;){3}',3)
)
PS : si un champ contient un ";" alors tant pis.

Avez-vous des idées

Merci à vous