Actuellement engagé dans un projet PL/SQL, je manipule une variable CLOB (vLIGN) au format JSON, où les clés et les valeurs sont concaténées avec "$FUSI$".
La présence de "$FUSI$" indique que la valeur associée doit être fusionnée avec celle précédente, ce qui équivaut à concaténer les deux valeurs et à supprimer la clé de la dernière occurrence.


Voici un exemple de ma variable JSON :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
vLIGN={"$FUSI$FRAI__TTC":"$FUSI$ 1680000","$FUSI$SALA__PREN":"$FUSI$HADDOCK","NDF__DATE_CREA":"08-04-2022","$FUSI$SALA__NOM":"$FUSI$ CAPITAINE"}
vLIGN={"$FUSI$FRAI__TTC":"$FUSI$ 2030000","$FUSI$SALA__PREN":"$FUSI$JEANETTE","NDF__DATE_CREA":"10-02-2022","$FUSI$SALA__NOM":"$FUSI$ DUJARDIN"}
vLIGN={"$FUSI$FRAI__TTC":"$FUSI$ 4500000","$FUSI$SALA__PREN":"$FUSI$DECKER","NDF__DATE_CREA":"11-04-2022","$FUSI$SALA__NOM":"$FUSI$ BLACKET"}
vLIGN={"$FUSI$FRAI__TTC":"$FUSI$ 200000","$FUSI$SALA__PREN":"$FUSI$DECKER","NDF__DATE_CREA":"11-02-2022","$FUSI$SALA__NOM":"$FUSI$ BLACKET"}
vLIGN={"$FUSI$FRAI__TTC":"$FUSI$ 2030000","$FUSI$SALA__PREN":"$FUSI$JAIME","NDF__DATE_CREA":"10-02-2022","$FUSI$SALA__NOM":"$FUSI$ LESGATEAUX"}
vLIGN={"$FUSI$FRAI__TTC":"$FUSI$ 200000","$FUSI$SALA__PREN":"$FUSI$MAN","NDF__DATE_CREA":"11-02-2022","$FUSI$SALA__NOM":"$FUSI$ IRONE"}
vLIGN={"$FUSI$FRAI__TTC":"$FUSI$ 150000","$FUSI$SALA__PREN":"$FUSI$MAN","NDF__DATE_CREA":"11-02-2022","$FUSI$SALA__NOM":"$FUSI$ IRONE"}
vLIGN={"$FUSI$FRAI__TTC":"$FUSI$ 150000","$FUSI$SALA__PREN":"$FUSI$MAN","NDF__DATE_CREA":"11-02-2022","$FUSI$SALA__NOM":"$FUSI$ IRONE"}
vLIGN={"$FUSI$FRAI__TTC":"$FUSI$ 7150000","$FUSI$SALA__PREN":"$FUSI$MAN","NDF__DATE_CREA":"12-01-2022","$FUSI$SALA__NOM":"$FUSI$ IRONE"}
vLIGN={"$FUSI$FRAI__TTC":"$FUSI$ 47815","$FUSI$SALA__PREN":"$FUSI$MAN","NDF__DATE_CREA":"08-04-2022","$FUSI$SALA__NOM":"$FUSI$ IRONE"}
vLIGN={"$FUSI$FRAI__TTC":"$FUSI$ 8500000","$FUSI$SALA__PREN":"$FUSI$MAN","NDF__DATE_CREA":"11-03-2022","$FUSI$SALA__NOM":"$FUSI$ IRONE"}
vLIGN={"$FUSI$FRAI__TTC":"$FUSI$ 194","$FUSI$SALA__PREN":"$FUSI$MAN","NDF__DATE_CREA":"26-08-2021","$FUSI$SALA__NOM":"$FUSI$ IRONE"}
vLIGN={"$FUSI$FRAI__TTC":"$FUSI$ 6000000","$FUSI$SALA__PREN":"$FUSI$PARFAIT","NDF__DATE_CREA":"11-01-2022","$FUSI$SALA__NOM":"$FUSI$ MONSIEUR"}
vLIGN={"$FUSI$FRAI__TTC":"$FUSI$ 1773","$FUSI$SALA__PREN":"$FUSI$PARFAIT","NDF__DATE_CREA":"09-03-2022","$FUSI$SALA__NOM":"$FUSI$ MONSIEUR"}
si on prend la première ligne :
{"$FUSI$FRAI__TTC":"$FUSI$ 1680000","$FUSI$SALA__PREN":"$FUSI$HADDOCK","NDF__DATE_CREA":"08-04-2022","$FUSI$SALA__NOM":"$FUSI$ CAPITAINE"}

Elle devrait être transformée en :

{"FRAI__TTC":"1680000 HADDOCK","NDF__DATE_CREA":"08-04-2022 CAPITAINE"}

nb : si $FUSI$ est situé au début de la chaîne, il doit être ignoré

Comment puis-je effectuer cette suppression en utilisant PL/SQL ? J'ai essayé d'utiliser JSON_TRANSFORM avec l'option ON NULL, mais je ne suis pas sûr de la meilleure approche.

Toute suggestion ou exemple de code serait grandement apprécié. Merci d'avance pour votre aide !