Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como obter uma tag xml de fechamento automático no Oracle PLSQL?


Se você só precisa fazer isso com "box", então você pode usar:
SELECT REPLACE(XMLELEMENT( "Consignment", XMLATTRIBUTES('123' AS "id",sysdate AS "date" ),
            XMLELEMENT( "Box", xmlattributes( '321' as "id" ))     
                 ).getstringval(),'></Box>',' />') as xxx FROM DUAL;

Se você tiver outras tags que precisam ser processadas dessa forma, você precisará usar REGEXP_REPLACE usando a mesma lógica.

Semanticamente, porém, ambas as formas representam exatamente os mesmos dados, e é por isso que você não pode fazer o que deseja "facilmente" com algum parâmetro fornecido ao gerador de XML (e por que talvez você não deva fazer isso em primeiro lugar!) .