本帖最后由 u010111617 于 2013-07-15 19:56:48 编辑

解决方案 »

  1.   

    递归打开游标,不说是否合理,用递归资源开销肯定会有风险。针对这种游标过多情况,估计可以用connect by递归出所有结果,用一次游标;
    或者将结果集放入列表,先全部delete,然后递归循环列表。
      

  2.   

    谢谢楼上啊,确实是一种思路,我尝试使用connect by来递归出结果。表有自引用,但是使用NOCYCLE却没用,还是查出循环数据了。。求解啊
      

  3.   

    先停用数据库上的所有约束,然后再删除,删除完数据后,恢复约束
    select * from all_constraints找到所有约束(系统表名不太记得了,你可以查下资料)
    ALTER TABLE 表名 disable constraint 约束名; --禁用约束
    --删除数据
    ...
    --恢复约束
    ALTER TABLE 表名 disable constraint 约束名;