for update 是为当前的查询加锁。利用这种方式可以大大的提高效率。下面的一个例子中利用有 for update of 的 游标更新数据。当然具体效率的提升情况需要用大数据量的处理来测试才能得出来。
declare
cursor gData(var1 varchar2) is select item_name,item_name_en,code_value from y0411 where item_name=var1 for update of code_value;
rs gData%rowtype;
begin
open gData('钢管');
loop
fetch gData into rs;
exit when gData%notfound;
if rs.item_name='铝型材' then
update y0411 set code_value='northsnow' Where Current Of gData;
else
update y0411 set code_value='塞北的雪' Where Current Of gData;
end if;
end loop;
close gData;
end;