为什么声名游标时需要使用for update?有什么好处呢?请说的通俗一点.最好可以举个例子说明它的好处,谢谢.
解决方案 »
- rman备份数据库的备份集在哪里?
- 数据库导放后视图及函数出现红叉
- 求救 ORCLE数据库恢复 急!!!
- 急求ORACLE查询方面的小问题。
- 百分求把这个T-SQL存储过程改成PL-SQL的存储过程
- plsql中如何实现sql2000中的事件探测器的功能?
- 一个关于Oracle表空间的问题
- 我是新手,请帮我看看下面这个触发器错在哪里?
- 请问怎样查看oracle9i中已创建的存储过程?谢谢!
- 使用Navicat Premium链接oracle 12c,出现Only compatible with oci version 8.1 and higher
- 经典问题“如何”建立可扩展的表
- oracle11g安装问题
详细
http://hi.baidu.com/haihongzhu/blog/item/6ceb45c21fcf4031e4dd3b0a.html
这种语法包括两部分——在游标声明部分的FOR UPDATE子句和在UPDATE或DELETE语句中的WHERE CURRENT OF 子句。
通常,SELECT操作将不会对正处理的行执行任何锁定设置,这使得连接到该数据库的其他会话可以改变正在选择的数据。
但是,结果集仍然是一致性的。当确定了活动集以后,在执行OPEN的时刻,Oracle会截取下该表的一个快照。在此时刻以前所提交的任何更改操作都会在活动集中反映出来。在此时刻以后所进行的任何更改操作,即使已经提交了它们,都不会被反映出来,除非将该游标重新打开。但是使用FOR UPDATE子句,在OPEN返回以前的活动集的相应行上会加上互斥锁,这些锁会避免其他的会话对活动集中的行进行更改。直到整个事务被提交为止。