问题:要从我的 SP 获得结果,我每次都需要重新编译。
SP 的目的:从表中的每一行构造 XML。
说明:在第一次运行 SP 后编译后,除非重新编译,否则 SP 不会返回任何数据,即使表中有有效行也是如此。
我的代码大纲是..
qry := 'select * from mytable where flag2 = 0 and flag1 = 1';
qContext := DBMS_XMLGEN.newContext(qry);
DBMS_XMLGEN.setrowtag(qContext, 'RowFromDB');
DBMS_XMLGEN.setrowsettag(qContext, 'RowTag');
dbms_xmlgen.setmaxrows(qContext, 1);
retXML := '';
loop
tmprowxml := DBMS_XMLGEN.getxml(qContext);
exit when dbms_xmlgen.getnumrowsprocessed(qContext) = 0;
tmprowxml := replace(tmprowxml, '<?xml version="1.0"?>');
retXML := retXML || tmprowxml;
// code to update flag2 to 1
end loop;
DBMS_XMLGEN.closecontext(qcontext);
COMMIT;
return retXML;
感谢任何指针。