beckhambobo(beckham)老大请进

xiaoxiao1984 2007-04-26 05:15:29
续上一个帖子for update of 和for update的区别
http://community.csdn.net/Expert/TopicView3.asp?id=5490597

beckhambobo老大提到的bug,存在疑问如下:
where current of cursor_name不是用来表示游标取得的当前的纪录么
cursor t_sor is
select a.name
from a,b
where a.id = b.id
for update of a.id;
游标取得的是a表中的纪录,而delete b WHERE CURRENT OF t_sor;删除的是b表的数据,返回错误也是正常啊,为什么老大认为这个应该是错的呢
猜测where current of 取得游标指针指着的当前纪录的rowid,然后根据rowid进行update,delete之类的操作

...全文
260 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
beckhambobo 2007-04-27
  • 打赏
  • 举报
回复
三年在论坛上无发技术贴,年纪老了,字也误笔
beckhambobo 2007-04-27
  • 打赏
  • 举报
回复
本人已三年在论坛上发技术贴,感觉oracle随版本高增加了不少好东西,一直无时间研究,还向各位多多学习.
beckhambobo 2007-04-27
  • 打赏
  • 举报
回复
指定a表的x字段或者y字段没有区别,测试过程中无发现异样,在oracle官方文档找到说法,for update of 字段仅区分于多表联接中,进行字段表锁定,而字段本身并不参与操作条件衡量(之前本人测试不充分,导致误解)

至于delete b WHERE CURRENT OF t_sor;删除的是b表的数据,返回错误也是正常啊,这句话本人估计游标锁定某表,不允许进行非锁定表事务处理.仅有例外情况,不使用锁定操作.例子如下:
SQL> declare
2 cursor t_sor is
3 select a.id
4 from a,b
5 where a.id = b.id
6 for update of a.id;
7 begin
8 for v_sor in t_sor loop
9 delete b
10 WHERE b.id = v_sor.id;
11 end loop;
12 end;
13 /

PL/SQL procedure successfully completed
penning 2007-04-27
  • 打赏
  • 举报
回复
这个明显是beckhambobo老大失误,你还追问个不停
http://www.itpub.net/115220,1.html
DragonBill 2007-04-27
  • 打赏
  • 举报
回复
mark
DragonBill 2007-04-27
  • 打赏
  • 举报
回复
beckhambobo(beckham) ( ) 信誉:196 Blog 加为好友 2007-04-27 12:32:57 得分: 0


本人已三年在论坛上发技术贴,感觉oracle随版本高增加了不少好东西,一直无时间研究,还向各位多多学习.


Top
beckhambobo(beckham) ( ) 信誉:196 Blog 加为好友 2007-04-27 12:33:57 得分: 0


三年在论坛上无发技术贴,年纪老了,字也误笔
********************************************************************************
呵呵,居然呆了三年:)
Eric_1999 2007-04-27
  • 打赏
  • 举报
回复
学习了。
xiaoxiao1984 2007-04-27
  • 打赏
  • 举报
回复
to penning(飞鱼):
只是由于有人问for update of 和for update的区别的时候,beckhambobo老大在举例的时候提到了where current of ...这样的用法,猫猫知道的比较少,之前没有使用过,看到以后自己尝试了用了一下,提出疑问而已。
猫猫学oracle并不是很长时间,以前没有考虑过两者的不同,itpub上的老帖子确实没有仔细查找,如果事先已经看到这篇帖子,就不需要发帖询问了,如果有让beckhambobo老大不高兴或者不乐意的地方,猫猫很郑重的表示歉意

wangzk0206 2007-04-27
  • 打赏
  • 举报
回复
呵呵 好热闹

beckhambobo(beckham):
常言说的好,姜还是老的辣。更何况ORACLE这个庞大的东西哪?
呵呵
baojianjun 2007-04-26
  • 打赏
  • 举报
回复
关注,研究
CathySun118 2007-04-26
  • 打赏
  • 举报
回复
帮顶

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧