=====Mit XML und xpath in einer Oracle SQL Query arbeiten===== Über den Trick XML zu erzeugen kann zum Beispiel eine Baumstruktur in SQL erzeugt werden und wieder flach ausgeben werden. Ein erstes Beispiel für XMLTABLE und einen xpatch: select * from XMLTABLE( 'PivotSet/item' Passing ( select * from ( select schema_name , (select count(*) from dba_proxies p where p.client = u.schema_name) percount from admin_users u where U.USER_TYPE != 'PERSONAL' group by schema_name ) pivot xml ( max(percount) for schema_name in (select schema_name from admin_users where USER_TYPE != 'PERSONAL' ) ) ) columns schemaname PATH '//column[@name="SCHEMA_NAME"]' , counter PATH '//column[@name="MAX(PERCOUNT)"]' ) vals SCHEMANAME , COUNTER --------------------- T1 11 T2 26 ... Mehr demnächst === XNL Baum erzeugen === SELECT XMLELEMENT("proxy_rights_list", XMLAGG ( XMLELEMENT("schema_name", XMLATTRIBUTES(u.id AS "schema_id"), XMLFOREST( u.schema_name as "schema", (SELECT XMLAGG( XMLELEMENT("proxy_from", XMLFOREST( p.proxy as "prox_user" ) ) ) FROM dba_proxies p where p.client = u.schema_name ) "proxy_list" ) ) ) ).getClobVal() AS "user_schemas" from admin_users u where U.USER_TYPE != 'PERSONAL' als Text ausgeben mit .getClobVal()! ---- ==== Quellen ==== Oracle: * https://docs.oracle.com/cd/B19306_01/appdev.102/b14288/exprn_xpathpredicates.htm Web * https://oracle-base.com/articles/misc/sqlxml-sqlx-generating-xml-content-using-sql