Giriş
İki kullanım amacı var
1. XML çıktı almak . XMLTYPE veya XMLELEMENT'lardan bir XML liste oluşturur.
2. Birden fazla sütunu tek sütunda birleştirmek için
Örnek - XML Çıktı
Şöyle
yaparız. XML tag'leri ORDER BY yapılabilir.
-- Built XML from elements
SELECT
XMLAGG(
XMLTYPE('<employee>' || ename || '</employee>')
ORDER BY ename)
FROM emp;
# Result (single row):
# <employee>ADAMS</employee><employee>ALLEN</employee>...
Örnek - XML Çıktı
Şöyle
yaparız. XMLELEMENT FROM içindeki bir alana atıfta bulunur
SELECT XMLELEMENT('Emp', XMLATTRIBUTES('Sales Representative' AS "Title"),
XMLAGG(XMLELEMENT('Name', full_name)))
FROM
(
SELECT CONCAT ("FirstName", ' ', "LastName") AS full_name
FROM ...
WHERE ...
ORDER BY 1) AS subq;
_______________________________________________________________________________
<Emp Title="Sales Representative">
<Name>Anne Dodsworth</Name>
<Name>Janet Leverling</Name>
<Name>Margaret Peacock</Name>
<Name>Michael Suyama</Name>
<Name>Nancy Davolio</Name>
<Name>Robert King</Name>
</Emp>
Örnek - Sütun Birleştirme
Şöyle yaparız. XMLELEMENT FROM içindeki alanlara atıfta bulunur. Bunların değerini CONCAT ile birleştirir.
SELECT
RTRIM(XMLAGG(
XMLELEMENT(E,CONCAT(CONCAT(F.Calltype, T.Useridentifiernumber),Fr.Functioncode)|| ','))
.Extract ('//text()'),
',') # remove the last ,
FROM ...