Funzione XMLELEMENT - XMLAGG
XMLELEMENT è una funzione che crea un documento XML.
Il primo argomento passato è il nome del Tag che non può essere il nome di una colonna, una espressione o il valore "null".
Il secondo argomento invece è una colonna, una stringa, un numero o una espressione.
E s e m p i o
select
XMLELEMENT(categoria ,PROD_SUBCATEGORY ) as Categoria
from sh.products;
E' possibile annidare più funzioni XMLELEMENT per avere oltre la categoria anche la descrizione del prodotto.
select
XMLELEMENT (prodotto,
XMLELEMENT(categoria ,PROD_SUBCATEGORY ),
XMLELEMENT (descrizione, PROD_DESC)
)as risultato
from sh.products
where PROD_SUBCATEGORY ='CD-ROM';
La funzione XMLAGG è una funzione aggregata che prende come input più righe di XML e genera un solo documento XML.
Nell'esempio di prima il risultato è una sola riga.
select XMLAGG (
XMLELEMENT (prodotto,
XMLELEMENT(categoria ,PROD_SUBCATEGORY ),
XMLELEMENT (descrizione, PROD_DESC)
) ) as risultato
from sh.products
where PROD_SUBCATEGORY ='CD-ROM';
E' possibile raggruppare il risultato usando la clausola Group By.
select prod_subcategory , XMLAGG(
XMLELEMENT (prodotto,
XMLELEMENT(categoria ,PROD_SUBCATEGORY ),
XMLELEMENT (descrizione, PROD_DESC)
))as risultato
from sh.products
GROUP BY prod_subcategory ;
Il primo argomento passato è il nome del Tag che non può essere il nome di una colonna, una espressione o il valore "null".
Il secondo argomento invece è una colonna, una stringa, un numero o una espressione.
E s e m p i o
select
XMLELEMENT(categoria ,PROD_SUBCATEGORY ) as Categoria
from sh.products;
Nell'esempio viene generato un xml con Tag CATEGORIA e il nome della categoria come valore.
E' possibile annidare più funzioni XMLELEMENT per avere oltre la categoria anche la descrizione del prodotto.
select
XMLELEMENT (prodotto,
XMLELEMENT(categoria ,PROD_SUBCATEGORY ),
XMLELEMENT (descrizione, PROD_DESC)
)as risultato
from sh.products
where PROD_SUBCATEGORY ='CD-ROM';
La funzione XMLAGG è una funzione aggregata che prende come input più righe di XML e genera un solo documento XML.
Nell'esempio di prima il risultato è una sola riga.
select XMLAGG (
XMLELEMENT (prodotto,
XMLELEMENT(categoria ,PROD_SUBCATEGORY ),
XMLELEMENT (descrizione, PROD_DESC)
) ) as risultato
from sh.products
where PROD_SUBCATEGORY ='CD-ROM';
E' possibile raggruppare il risultato usando la clausola Group By.
select prod_subcategory , XMLAGG(
XMLELEMENT (prodotto,
XMLELEMENT(categoria ,PROD_SUBCATEGORY ),
XMLELEMENT (descrizione, PROD_DESC)
))as risultato
from sh.products
GROUP BY prod_subcategory ;