2

问题:要从我的 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;

感谢任何指针。

4

1 回答 1

0

您是否在运行之间删除并重新创建表?远射,但这会使程序无效。

于 2014-02-18T12:06:12.020 回答