日期:2014-05-17  浏览次数:20914 次

游标处理过程,如果数据发生了新增,修改,删除,游标怎么处理
意思就是:

cursor user_cursor is
  select * from users; --这里是  


for c in user_cusor loop

 -在这里处理时,users表发生了新增,修改,删除,
  --user_cusor还是以前的,还是重新获取新的

end loop;

------解决方案--------------------
那你就循环一个select userid from users,每行再重新查一次。

不过这个业务逻辑就是个250的业务逻辑。
------解决方案--------------------
ORACLE采用一致性读,因此user_cusor还是以前的,你查询那刻的数据
------解决方案--------------------
最后还是自己造几万条数据 然后别的客户端立刻修改,甚至delete 全部 
看看是什么结果。

------解决方案--------------------
而且我没记错的话,游标默认应该是动态游标
所以结果应该是变化的 看看这个
http://wenku.baidu.com/view/a64f9b0302020740be1e9b75.html
------解决方案--------------------
游标一旦打开,游标中的数据就不会变化的
------解决方案--------------------
探讨

游标一旦打开,游标中的数据就不会变化的

------解决方案--------------------
看以看一下开发方面的书籍

------解决方案--------------------
可以无畏一点,每次循环加一个查询