注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Sky

积蓄能量,准备奔跑!

 
 
 

日志

 
 

oracle的select for update of  

2007-10-16 21:15:59|  分类: Oracle学习笔记 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

oracle的select for update 在多数情况下,提取循环中所完成的处理都会修改由游标检查出的行,PL/SQL提供了进行这样处理的一种语法。

示例:

DECLARE

CURSOR C_CUR IS SELECT * FROM STUDENDS FOR UPDATE OF XM;

BEGIN

OPEN C_CUR;

WHILE C_CUR%FOUND LOOP

UPDATE STUDENDS SET XM=‘AA‘||XM WHERE CURRENT OF C_CUR; END LOOP; CLOSE C_CUR;

COMMIT;

END;

注意:

1、UPDATE语句仅更新在游标声明的FOR UPDATE子句处列出的列。因为FOR UPDATE子句获得了锁,所以COMMIT将释放这些锁。

2、通俗的讲:该语句会自动获取行级锁,在你SELECT的记录中放置排他锁,只是符合SELECT条件的行才被锁定,在你未释放锁(COMMIT   or   ROLLBACK)之前其它用户不能进行更新操作,可以执行更新之外的其它操作(SELECT)。

  评论这张
 
阅读(338)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017