sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo obtener una etiqueta xml de cierre automático en Oracle PLSQL?

Si solo necesita hacer esto con "box", entonces puede usar:

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

Si tiene otras etiquetas que deben procesarse de esta manera, deberá usar REGEXP_REPLACE con la misma lógica.

Sin embargo, semánticamente, ambas formas representan exactamente los mismos datos, por lo que no puede hacer lo que quiere hacer "fácilmente" con algún parámetro proporcionado al generador XML (¡y por qué tal vez no debería hacerlo en primer lugar!) .