У меня открыт SYS_REFCURSOR для какого-то запроса.Я делаю XML для всех записей в SYS_REFCURSOR, используя DBMS_XMLGEN.Также я пытаюсь извлечь записи в переменную записи, а затем распечатать OUTPUT.Проблема в том, что если я создаю только XML из SYS_REFCURSOR или если я только извлекаю информацию, она работает просто отлично.Но если я пытаюсь сделать и то, и другое, он выбрасывает ошибку из последовательности.
Пожалуйста, помогите.Ниже приведен пример кода.
Я объявил p_individual в качестве типа записи.
set serveroutput on;
declare
l_ctx dbms_xmlgen.ctxhandle;
l_xmltype clob;
l_xml xmltype;
L_REFCURSOR SYS_REFCURSOR;
begin
OPEN L_REFCURSOR FOR select * from some_table;
//Creating XML
L_CTX := dbms_xmlgen.newcontext(L_REFCURSOR);
dbms_xmlgen.setrowsettag(L_CTX, 'root');
dbms_xmlgen.setrowtag(L_CTX, 'data');
L_XML := dbms_xmlgen.getXmlType(L_CTX) ;
dbms_xmlgen.closeContext(L_CTX);
dbms_output.put_line(L_XML.getclobval());
//Fetching the same cursor to print output
loop
fetch L_REFCURSOR into p_individual;
exit when L_REFCURSOR%NOTFOUND;
dbms_output.put_line(p_individual.id);
end loop;
close L_REFCURSOR;
end;
/