![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
I'm not sure if this is the correct forum, but I'll give it a shot. I'm using the Oracle built-in XML functions to format a result set into an XML representation. However, I can't quite figure out how to "wrap" my results with a header/footer. For example, I want my output to be: ?xml version="1.0" encoding="UTF-8" ? OuterElement AllMyQueryResultsXML/ /OuterElement I've successfully created a multi-row query that generates the AllMyQueryResultsXML>. But, I can't figure out how to get the final step of wrapping those results in the version and <OuterElement> aspects. I know I can use XMLRoot for the version aspect. But the <OuterElement eludes me. I've tried doing stuff like: select xmltype("<OuterElement>") from dual union all ...MyMultiRowQueryThatReturnsXMLTYPE... union all select xmltype("</OuterElement>") from dual But that doesn't work, because XMLTYPE expects well-formed XML. I've tried variations on the theme with XMLSERIALIZE and XMLCONCAT, but I can't seem to get it to work. Any help that anyone can provide would be *much* appreciated. Thanks! |
#3
| |||
| |||
|
|
I'm not sure if this is the correct forum, but I'll give it a shot. I'm using the Oracle built-in XML functions to format a result set into an XML representation. However, I can't quite figure out how to "wrap" my results with a header/footer. For example, I want my output to be: ?xml version="1.0" encoding="UTF-8" ? OuterElement AllMyQueryResultsXML/ /OuterElement I've successfully created a multi-row query that generates the AllMyQueryResultsXML>. But, I can't figure out how to get the final step of wrapping those results in the version and <OuterElement> aspects. I know I can use XMLRoot for the version aspect. But the <OuterElement eludes me. I've tried doing stuff like: select xmltype("<OuterElement>") from dual union all ....MyMultiRowQueryThatReturnsXMLTYPE... union all select xmltype("</OuterElement>") from dual But that doesn't work, because XMLTYPE expects well-formed XML. I've tried variations on the theme with XMLSERIALIZE and XMLCONCAT, but I can't seem to get it to work. Any help that anyone can provide would be *much* appreciated. Thanks! |
#4
| |||
| |||
|
|
On 18.11.2010 21:30, John Peterson wrote: I'm not sure if this is the correct forum, but I'll give it a shot. I'm using the Oracle built-in XML functions to format a result set into an XML representation. However, I can't quite figure out how to "wrap" my results with a header/footer. For example, I want my output to be: ?xml version="1.0" encoding="UTF-8" ? OuterElement AllMyQueryResultsXML/ /OuterElement I've successfully created a multi-row query that generates the AllMyQueryResultsXML>. But, I can't figure out how to get the final step of wrapping those results in the version and <OuterElement> aspects. I know I can use XMLRoot for the version aspect. But the <OuterElement eludes me. I've tried doing stuff like: select xmltype("<OuterElement>") from dual union all ....MyMultiRowQueryThatReturnsXMLTYPE... union all select xmltype("</OuterElement>") from dual But that doesn't work, because XMLTYPE expects well-formed XML. I've tried variations on the theme with XMLSERIALIZE and XMLCONCAT, but I can't seem to get it to work. Any help that anyone can provide would be *much* appreciated. Thanks! You may try something like this: SQL> select xmlroot( 2 xmlelement("OuterElement", 3 xmltype(cursor(select loc from dept)) 4 ) 5 , version '1.0').extract('/') xml 6 from dual 7 / XML ------------------------- ?xml version="1.0"? OuterElement ROWSET ROW LOC>NEW YORK</LOC /ROW ROW LOC>DALLAS</LOC /ROW ROW LOC>CHICAGO</LOC /ROW ROW LOC>BOSTON</LOC /ROW /ROWSET /OuterElement where xmltype(cursor(...)) should represent your data like in "MyMultiRowQueryThatReturnsXMLTYPE" Note, that extract('/') is added only to make pretty print of produced xml, it isn't necessary for your purpose. Best regards Maxim |
#5
| |||
| |||
|
|
John Peterson wrote: I'm not sure if this is the correct forum, but I'll give it a shot. I'm using the Oracle built-in XML functions to format a result set into an XML representation. However, I can't quite figure out how to "wrap" my results with a header/footer. For example, I want my output to be: ?xml version="1.0" encoding="UTF-8" ? OuterElement AllMyQueryResultsXML/ /OuterElement I've successfully created a multi-row query that generates the AllMyQueryResultsXML>. But, I can't figure out how to get the final step of wrapping those results in the version and <OuterElement> aspects. I know I can use XMLRoot for the version aspect. But the <OuterElement eludes me. I've tried doing stuff like: select xmltype("<OuterElement>") from dual union all ...MyMultiRowQueryThatReturnsXMLTYPE... union all select xmltype("</OuterElement>") from dual But that doesn't work, because XMLTYPE expects well-formed XML. I've tried variations on the theme with XMLSERIALIZE and XMLCONCAT, but I can't seem to get it to work. Any help that anyone can provide would be *much* appreciated. Thanks! SELECT XMLROOT ( XMLElement("OuterElement", "<AllMyQueryResultsXML/>" ), VERSION '1.0', STANDALONE YES) AS "XMLROOT" FROM DUAL; |
#6
| |||
| |||
|
|
"Gerard H. Pille" <ghp (AT) skynet (DOT) be> wrote SELECT XMLROOT ( XMLElement("OuterElement", "<AllMyQueryResultsXML/>" ), VERSION '1.0', STANDALONE YES) AS "XMLROOT" FROM DUAL; Thanks Gerald -- but I can't seem to figure out how to structure the query inside of the outer query. Maxim's reply seems to be (sort of) working for me, so I'll probably go that route. |
![]() |
| Thread Tools | |
| Display Modes | |
| |