Oracle
 sql >> Baza danych >  >> RDS >> Oracle

błąd podzapytania i zbyt wiele wartości przy użyciu xmllagg

Połączenie xmlagg i xQuery nie jest proste.

select xmlquery('distinct-values(//text())' passing x returning content).getclobVal(),data_type from (
    select   xmlelement(root, xmlagg(XMLELEMENT(e,table_name,','))) x ,data_type
     from user_tab_cols where data_type in ('VARCHAR2','NUMBER')     
     group by data_type
     )

I dla Ciebie powinno to wyglądać tak

select 
    app, key_event,  
    xmlquery('distinct-values(//text())' passing xmldoc returning content).getclobVal()
from 
    (select  
         t2.app,  
         coalesce(max(case when language =  2 then description end), 
                  max(case when language = 12 then description end), 
                  max(case when language = 27 then description end), 
                  'NULL') key_event,
         XMLELEMENT(root, xmlagg(XMLELEMENT(e, description, ','))
    ) xmldoc
from 
    table2 t2 
left join 
    table1 t1 on t1.app = t2.app 
group by 
    trans, t2.app
order by trans);

jeśli zdekomponujesz to zapytanie, zobaczysz, jak działa.

składnia wartości odrębnych xquery

składnia zapytań xml



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy sekwencje specjalne są zachowywane w CLOB?

  2. ORA-00942:tabela lub widok nie istnieje — Oracle

  3. różnica kryteriów wyszukiwania między Like vs Contains() w Oracle

  4. Druga najwyższa wartość z tabeli Oracle DB

  5. Jak zrobić dynamiczny pivot z datą i kolejną kolumną w Oracle?