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;



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 ;




Post popolari in questo blog

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione

Create e Drop Pluggable Database