मुझे लगता है कि आपको नीचे की तरह अलग आउटपुट चाहिए
<?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>
इसके लिए किसी दूसरे कर्सर की आवश्यकता नहीं है। आप नीचे की तरह प्राप्त कर सकते हैं
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
;
distint
. के बाद से इस अवसर पर अलग है। इसलिए कोई उप कर्सर की आवश्यकता नहीं है। यहां distinct
सबक्वायरी में सभी रिकॉर्ड को स्वयं हटा देगा।