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

关于Oracle select...for update of 的问题,请高手帮忙!
我在SQL   Plus中执行select   title   from   book   for   update   of   title   where   isbn   =   'A001 ',然后再打开一个SQL   Plus窗口执行update   book   set   price   =   20   where   isbn   =   'A001 ',更新无法完成,必须把select...for   update   of   提交了才能执行,请问为什么?这样的话select...for   update   of   和select...for   update有什么区别?

------解决方案--------------------
不清楚
按理说应该只提供到行级锁,没有到字段的
难道只是为了程序易读性?
------解决方案--------------------
指定锁的范围
------解决方案--------------------
declare
cursor t_sor is
select title
from book
where isbn = 'A001 '
for update of id NOWAIT;
begin
for v_sor in t_sor loop
delete from book WHERE CURRENT OF t_sor;
end loop;
end;

以上语句作用于多用户操作同一记录时,防止等待现像.for update of 字段,可用于操作条件.