Oracle and XML: works with Oracle9i, 10g, 11g and higher

select xmlforest(name,vorname) as Employeedaten
from emp
where empno in (1,2)
;

<NAME>Hilton</NAME><VORNAME>Paris</VORNAME>

select xmlelement("Employee"
,xmlattributes(empno,name,vorname)
) as Employee
from emp
where empno in (1,2)
;

<Employee empno=”1″ NAME=”Hilton” VORNAME=”Paris”></Employee>

SELECT dbms_xmlgen.getxml(
'<Person Name="{$NAME}">
<empno>"{$empno}"</empno>
</Person>'
) AS Person
from emp
where empno in (1,2)
;

ORA-19206: Invalid value for query or REF CURSOR parameter
ORA-06512: at “SYS.DBMS_XMLGEN”, line 121
ORA-06512: at line 1

SELECT sys_xmlgen(name).getStringVal() as Name
from emp
where empno in (1,2)
;

<?xml version=”1.0″?>
<NAME>Hilton</NAME>

SELECT sys_xmlagg(sys_xmlgen(name)).getStringVal() as Name
from emp
where empno in (1,2)
;

<?xml version=”1.0″?>
<ROWSET>
<NAME>Hilton</NAME>
<NAME>Pit</NAME>
</ROWSET>

SELECT dbms_xmlgen.getxml
('select bew_id, bewart_bezeichnung,STATUS_MEANING, BEPITGUNGSDATUM, empno, PERS_BESCHR, STRASSE, HAUSNUMMER, PLZ, ORT, LND from bpitgungen_vie a where bew_id = 100'
)
FROM DUAL
;

<?xml version=”1.0″?>
<ROWSET>
<ROW>
<BEW_ID>100</BEW_ID>
<BEWART_BEZEICHNUNG>Gewerbebebitgung</BEWART_BEZEICHNUNG>
<STATUS_MEANING>Aktiv</STATUS_MEANING>
<BEPitGUNGSDATUM>01.10.1936</BEPitGUNGSDATUM>
<empno>2069382</empno>
<PERS_BESCHR>Beckham</PERS_BESCHR>
<STRASSE>Mainstreet</STRASSE>
<HAUSNUMMER>35</HAUSNUMMER>
<PLZ>6000</PLZ>
<ORT>San Diego</ORT>
<LND>USA</LND>
</ROW>
</ROWSET>

select sys_XMLGen(name) as person_name
from emp
where empno in (1,2)
;

<?xml version=”1.0″?>
<NAME>Hilton</NAME>

/*
theoretical good query:
*/
select XMLGEN( '<catalog>{$items}</catalog>',
XMLAGG( book ) as items )
from Catalog
;

/*
Generates DBURITYPE URL
*/
select sys_dburigen(name) as person_name
from emp
where empno in (1,2)
;

(/PUBLIC/emp/ROW[NAME=’Hilton’]/NAME; )

SQL/XML StandardFunktionen zur Transformation von Anfragen

XMLGEN
– generiert ein XML-Dokument mittels einer Anfrage in XQuery
XMLELEMENT
- erzeugt ein XML-Element (wenn gewünscht mit Attributen)
– ggf. mit Attributen via XMLATTRIBUTES
XMLFOREST
- erzeugt aus beliebigen Werten einen Wald von XML-Elementen
XMLCONCAT
– konkateniert mehrere XML-Elemente zu einem Wald
XMLAGG
- aggregiert die XML-Elemente einer Gruppe

LINKS

Oracle FAQ: Oracle and XML

Oracle.com: Generating XML Data from the Database

ITtoolbox: Get the XML out of your database (script to write out large XML)

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top