续上一个帖子for update of 和for update的区别
http://community.csdn.net/Expert/TopicView3.asp?id=5490597beckhambobo老大提到的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之类的操作
http://community.csdn.net/Expert/TopicView3.asp?id=5490597beckhambobo老大提到的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之类的操作
解决方案 »
- Exception in thread "main" java.sql.SQLException: ORA-00923: FROM keyword not fo
- oracle 硬盘不停地进行读写
- 求oracle存储过程:多表连接且动态取字段(临时表)并汇总数值字段合并输出结果集。--升级版!
- 向DataGirdView中添加行的问题……
- oracle9执行完提示一下错误,请指教是怎么回事!
- 表空间删除特例
- oracle自带的ultra search如何进行中文分词?
- 关于dbms_alert的一个问题
- Oracle中的having问题
- 求助修改数据SQL编写
- 关于ORA-01000: maximum open cursors exceeded
- 求在ORACLE9i下查询树的叶子结点的SQL语句.在线等(......................................)
http://www.itpub.net/115220,1.html
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
常言说的好,姜还是老的辣。更何况ORACLE这个庞大的东西哪?
呵呵
只是由于有人问for update of 和for update的区别的时候,beckhambobo老大在举例的时候提到了where current of ...这样的用法,猫猫知道的比较少,之前没有使用过,看到以后自己尝试了用了一下,提出疑问而已。
猫猫学oracle并不是很长时间,以前没有考虑过两者的不同,itpub上的老帖子确实没有仔细查找,如果事先已经看到这篇帖子,就不需要发帖询问了,如果有让beckhambobo老大不高兴或者不乐意的地方,猫猫很郑重的表示歉意
本人已三年在论坛上发技术贴,感觉oracle随版本高增加了不少好东西,一直无时间研究,还向各位多多学习.
Top
beckhambobo(beckham) ( ) 信誉:196 Blog 加为好友 2007-04-27 12:33:57 得分: 0
三年在论坛上无发技术贴,年纪老了,字也误笔
********************************************************************************
呵呵,居然呆了三年:)