1 pièce(s) jointe(s)
DBeaver Oracle : Extraire la valeur d'une balise d'un xml
:coucou: Forum,
J'espère que tout le monde se porte bien.
Dans ma table INBOX_MESSAGES, j'ai un colonne CONTENT qui contient un xml.
Quand je veux extraire une valeur correspondant à une balise, j'utilise ce code :
Code:
1 2 3 4 5 6 7 8 9 10 11
| SELECT
:mybalise AS Balise
,SUBSTR(im.CONTENT,INSTR(im.CONTENT, :mybalise) + LENGTH(:mybalise) + 1,
((INSTR(im.CONTENT, '/' || '' || :mybalise)-2)
- (INSTR(im.CONTENT, :mybalise) + LENGTH(:mybalise) + 1)+1)) AS BALISE_VALUE
FROM INBOX_MESSAGES im
INNER JOIN PERSONS p2 ON p2.PERSON_ID =im.PERSON_ID
WHERE im.TYPE = 'D054'
AND im.OVERALL_START_DATE >= '01/07/2020' AND im.OVERALL_START_DATE <= '30/09/2020'
; |
Pièce jointe 582969
Oui, je sais, cela ressemble furieusement à de l'excel transformé pour la cause. C'est vrai mais cela fonctionne.
Mais, je suis certain qu'il existe un moyen plus simple de trouver la balise et sa valeur. J'ai essayé avec XMLTABLE, XMLQUERY... rien n'y fait.
Si vous avez une très bonne piste, je suis preneur.