X
XML is not cool anymore, but if you are still using it and want to have it in readable form (indented), there is a "AS CLOB INDENT SIZE" trick. There is a little side effect and that is that the empty tags (departure_at) will be shortened.
SELECT '<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:app=""> <soap:Header> <a:Action soap:mustUnderstand="1"></a:Action> </soap:Header> <soap:Body> <app:message><![CDATA['|| XMLSERIALIZE(DOCUMENT XMLELEMENT("messages", XMLAGG(XMLELEMENT("message", XMLATTRIBUTES(r.message_id AS "id"), XMLELEMENT("location", XMLELEMENT("country_id", r.country_id), XMLELEMENT("source_id", r.source_id) ), XMLELEMENT("departure_at", NULL) ))) AS CLOB INDENT SIZE = 2 -- this is the trick ) || ']]></app:message> </soap:Body> </soap:Envelope>' AS xml FROM ( SELECT 1 AS message_id, 'CZ' AS country_id, 'A' AS source_id FROM DUAL UNION ALL SELECT 1 AS message_id, 'SK' AS country_id, 'B' AS source_id FROM DUAL ) r;
Comments
Post a Comment