Bonjour,

J'ai la requête suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
SELECT ( SELECT WM_CONCAT(EXTRACTVALUE(VALUE(COULEUR), '/CHAUSSURES/COULEUR/text()', 'xmlns=' || SCFG.CONFIG_DTO_NAMESPACE)) 
FROM TABLE(XMLSEQUENCE(EXTRACT(SPE.CONFIG_XML, '//TEINTES/TEINTE[TROUS[text()="true"]]', 'xmlns=' || SCFG.CONFIG_DTO_NAMESPACE))) COULEUR) AS COULEUR_TEINTE,
SPE.MOD_ID,
SCFG.CONFIG_DTO_NAMESPACE
FROM MODELE SPE
LEFT JOIN MARQUE SCFG ON SPE.MODELE_ID = SCFG.MODELE_ID
WHERE SPE.MODELE_ID = 220
qui me donne le résultat suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
COULEUR_TEINTE  MOD_ID CONFIG_DTO_NAMESPACE 
0193-0192-0194    220  'XXXXXXX'
Et la requête suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
SELECT ( SELECT WM_CONCAT(EXTRACTVALUE(VALUE(COULEUR), '/CHAUSSURES/COULEUR/text()', 'xmlns=' || SCFG.CONFIG_DTO_NAMESPACE)) 
FROM TABLE(XMLSEQUENCE(EXTRACT(SPE.CONFIG_XML, '//TEINTES/TEINTE[TROUS[text()="true"]]', 'xmlns=' || SCFG.CONFIG_DTO_NAMESPACE))) COULEUR) AS COULEUR_TEINTE,
SPE.MOD_ID,
SCFG.CONFIG_DTO_NAMESPACE
FROM MODELE SPE
LEFT JOIN MARQUE SCFG ON SPE.MODELE_ID = SCFG.MODELE_ID
WHERE SPE.MODELE_ID IN (95,220)
me donne ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
COULEUR_TEINTE  MOD_ID CONFIG_DTO_NAMESPACE 
0193-0192-0194    220  'XXXXXXX'
null    95  'XXXYYYY'
Il faut savoir que pour le MOD_ID=95 je dois aussi avoir 0193-0192-0194 ! Mais si je fais une clause where avec MOD_ID = 95 alors j'ai les bonnes valeurs 0193-0192-0194!

Merci de votre réponse !