Bonjour, j'ai un petit soucis avec l'utilisation de XML Table ! Je souhaite récupérer le contenu d'un XML, et donc j'utilise pour ça XMLTable.
J'ai un XML avec pour construction
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <Document> <AccountInfo> <blabla> </blabla> <blabla2> </blabla2> </accountInfo> <Ntry> <Amount></Amount> </Ntry> <Ntry> <amount></Amount> </Ntry> </document>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT bla.message_1, bla.message_2, bla.amount FROM blabla bla, xmltable(xmlnamespaces(DEFAULT 'blabla'), '/Document' passing src.contenu columns message_1 varchar2(50) path 'AccountInfo/blabla', message_2 varchar2(50) path 'AccountInfo/blabla2', amount varchar2(20) path 'Ntry/Amount' ;
Et en fait, quand j'ai rédigé ma requête, j'ai une erreur "ORA 19279- attente d'une séquence mono élément, obtention d'une séquence multi élément" et je pense que c'est parce que Ntry est présent en plusieurs fois (ma requête fonctionne proprement si il n'y a qu'un seul Ntry dans le XML. Comment faire pour récupérer plusieurs lignes, en sachant qu'il y a différents Ntry et un seul AccountInfo ? Sur le net, je n'ai pas trouvé de pistes très claires, j'ai vu des jointures d'autres XML tables avec Left Join ou cross join mais je n'ai pas réussi à le reproduire.
Merci d'avance pour votre aide !
Partager