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

Oracle :Select different nie działa, gdy kursor znajduje się wewnątrz kursora (przy użyciu wyrażenia kursora)

myślę, że potrzebujesz wyraźnego wyjścia, jak poniżej

<?xml version="1.0"?>
<ROWSET>
 <ROW>
  <CONTACTS>
   <CONTACTS_ROW>
    <CONTACT_NAME>ALBERT EINSTEIN</CONTACT_NAME>
    <INVOICE_NUMBER>123456</INVOICE_NUMBER>
    <INVOICE_AMOUNT>10000</INVOICE_AMOUNT>
    <INVOICE_CURRENCY>EUR</INVOICE_CURRENCY>
   </CONTACTS_ROW>
  </CONTACTS>
 </ROW>
</ROWSET>

do tego nie jest wymagany drugi kursor. możesz osiągnąć jak poniżej

select dbms_xmlgen.getxml('
select 
cursor (
  select 
    distinct 
    ''ALBERT EINSTEIN'' CONTACT_NAME 
    , 123456 INVOICE_NUMBER, 10000 INVOICE_AMOUNT, ''EUR'' INVOICE_CURRENCY 
  from 
  ALL_VIEWS
  where view_name IN ( ''ALL_INDEXES'', ''ALL_TABLES'')
  ) AS CONTACTS
  from dual 
 ') from dual
;

od distint w tym przypadku jest inaczej. dlatego nie jest wymagany podkursor. tutaj distinct samoczynnie usunie wszystkie rekordy w podzapytaniu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Naruszone – nie znaleziono klucza nadrzędnego 02291. 00000 – ograniczenie integralności

  2. PostgreSQL mysql różnice w wyroczni

  3. Jak usunąć rekordy na podstawie poprzednich i następnych wierszy i przypisać datę w oparciu o określone warunki?

  4. jak wywołać jeden przechowywany proc z pylnika i zmodyfikować zwracany refcursor?

  5. podzapytanie - uzyskanie najwyższego wyniku