Reputation: 38
I have empty tag in oracle sql like
<ID></ID>
I need to change it to
<ID/>
in oracle sql. Anyone have the solution for it?
Expected:"<ID/>"
Actual:"<ID></ID>"
I am using this Oracle XML query to generate the XML:
Select XMLSERIALIZE(DOCUMENT XMLELEMENT("EMP",XMLATTRIBUTES('NIKHIL' "NAME" )
,XMLELEMENT("ID",ID)
,XMLELEMENT("DESIGNATION",DESIGNATION)) ) as "XML"
from (select '1' "ID",'DEVELOPER' "DESIGNATION"
from dual
union
select null "ID",'DEVELOPER' "DESIGNATION" from dual )
Upvotes: 1
Views: 284
Reputation: 171
If you wrap it in a xmlroot element, you get the tag as desired.
Select XMLSERIALIZE(DOCUMENT
XMLROOT(
XMLELEMENT
(
"EMP",XMLATTRIBUTES('NIKHIL' "NAME" )
,XMLELEMENT("ID",ID)
,XMLELEMENT("DESIGNATION",DESIGNATION)
), version '1.0" encoding="Windows-1250')) as "XML"
from (select '1' "ID",'DEVELOPER' "DESIGNATION"
from dual
union
select null "ID",'DEVELOPER' "DESIGNATION" from dual )
Result is:
<?xml version="1.0" encoding="Windows-1250"?>
<EMP NAME="NIKHIL">
<ID/>
<DESIGNATION>DEVELOPER</DESIGNATION>
</EMP>
Upvotes: 1