我写的pro c调用存储过程一段时间后就会提示:21870的错误,对应错误为:
Maximum number of object durations exceeded. 
Cause: This typically happens if there is infinite recursion in the PL/SQL function that is being executed.
Action: User should alter the recursion condition in order to prevent infinite recursion.意思是说我的程序里边有无限循环语句,而我看了一下对应的我写的代码报错语句为:
insert into tphs_xml_temp(ORDER_ID, XML_DATA)values(gs_order_id,XMLType(ls_xml));在这个tphs_xml_temp表上边又有两个view出现这个错误的频率一般为2天出现一次,我只要重启一下pro c程序就没事啦,如果不重启程序,我看有一些数据传进来可以执行成功,有一些不可以执行成功,但是多执行几次就都成功啦各位大侠帮忙解决一下,这个是怎么回事啊?

解决方案 »

  1.   

    存储过程里边没有commit,统一放到pro c里边来提交的!
    错误正好报在insert的时候了,不是报在其他地方。最最郁闷的是,同样的数据有时候可以执行通过,有时候不可以执行通过提示21780,重起pro c程序,啥都没有改就全部都通过啦!
      

  2.   

    每一个insert后加commit这样不行啊,又不是每次都这样,这个程序也是运行那么1-2天就会出现一次,掌握不到那个时机了!