Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment obtenir une balise xml à fermeture automatique dans Oracle PLSQL ?

Si vous n'avez besoin de le faire qu'avec "box", alors vous pouvez utiliser :

SELECT REPLACE(XMLELEMENT( "Consignment", XMLATTRIBUTES('123' AS "id",sysdate AS "date" ),
            XMLELEMENT( "Box", xmlattributes( '321' as "id" ))     
                 ).getstringval(),'></Box>',' />') as xxx FROM DUAL;

Si vous avez d'autres balises qui doivent être traitées de cette façon, vous devrez utiliser REGEXP_REPLACE en utilisant la même logique.

Sémantiquement cependant, les deux formes représentent exactement les mêmes données, c'est pourquoi vous ne pouvez pas faire ce que vous voulez faire "facilement" avec certains paramètres donnés au générateur XML (et pourquoi peut-être que vous ne devriez pas le faire en premier lieu !) .