XMLSERIALIZE
Posté : mer. 03 oct. 2018, 09:22:54
Via la requête ci-dessous je génère un fichier dans l'IFS.
SELECT
'<?xml version="1.0" encoding="UTF-8"?>' ||
xmlserialize(
xmlelement(name "info_1",
xmlelement (name "info_2" ,
xmlelement(name "detailinfo2_1" , '1234'),
xmlelement(name "deatilinfo2_2" , '12345678')
),
xmlelement(name "liste" ,
xmlagg(
xmlelement(
name "enetete",
xmlelement(name "detail_1" , BIBLIO.DATEISO(a.DATEW, '*dmy')),
xmlelement(name "detail_2" , b.VALEUR1),
xmlelement(name "detail_3" , b.VALEUR2)
)
)
)
) as VARCHAR(3000)
)
FROM BIB.FIC1 a
LEFT JOIN BIB.FIC2 b
ON a.DATEW = b.DATEW AND a.NUMERO = b.NUMERO
LEFT JOIN BIB.FIC3 c ON a.ZONE1 = c.ZONE1
WHERE
a.NUMERO BETWEEN 375 AND 400
AND a.DATTUE = 011018;
Résultat :
<?xml version="1.0" encoding="UTF-8"?>
<info_1>
<info_2>
<detailinfo2_1>1234</detailinfo2_1>
<deatilinfo2_2>12345678</deatilinfo2_2>
</info_2>
<liste>
<enetete>
<detail_1>2018-10-01</detail_1>
<detail_2>72.0</detail_2>
<detail_3>.0</detail_3>
</enetete>
<enetete>
<detail_1>2018-10-01</detail_1>
<detail_2>79.7</detail_2>
<detail_3>77.2</detail_3>
</enetete>
</liste>
</info_1>
Problème :
Je ne parviens pas à obtenir "0.0" en detail_3 lorsque ma valeur est égal à zéro. Que faire ?
SELECT
'<?xml version="1.0" encoding="UTF-8"?>' ||
xmlserialize(
xmlelement(name "info_1",
xmlelement (name "info_2" ,
xmlelement(name "detailinfo2_1" , '1234'),
xmlelement(name "deatilinfo2_2" , '12345678')
),
xmlelement(name "liste" ,
xmlagg(
xmlelement(
name "enetete",
xmlelement(name "detail_1" , BIBLIO.DATEISO(a.DATEW, '*dmy')),
xmlelement(name "detail_2" , b.VALEUR1),
xmlelement(name "detail_3" , b.VALEUR2)
)
)
)
) as VARCHAR(3000)
)
FROM BIB.FIC1 a
LEFT JOIN BIB.FIC2 b
ON a.DATEW = b.DATEW AND a.NUMERO = b.NUMERO
LEFT JOIN BIB.FIC3 c ON a.ZONE1 = c.ZONE1
WHERE
a.NUMERO BETWEEN 375 AND 400
AND a.DATTUE = 011018;
Résultat :
<?xml version="1.0" encoding="UTF-8"?>
<info_1>
<info_2>
<detailinfo2_1>1234</detailinfo2_1>
<deatilinfo2_2>12345678</deatilinfo2_2>
</info_2>
<liste>
<enetete>
<detail_1>2018-10-01</detail_1>
<detail_2>72.0</detail_2>
<detail_3>.0</detail_3>
</enetete>
<enetete>
<detail_1>2018-10-01</detail_1>
<detail_2>79.7</detail_2>
<detail_3>77.2</detail_3>
</enetete>
</liste>
</info_1>
Problème :
Je ne parviens pas à obtenir "0.0" en detail_3 lorsque ma valeur est égal à zéro. Que faire ?