问题:要从我的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;
欣赏任何指针。
答案 0 :(得分:0)
您是否在运行之间删除并重新创建表格?很长一段时间,但这会使程序无效。