现有一个存储过程.首先select 一个条件
                 然后update 一条记录
问题是如果有二个人同时操作这一存储过程,
可能出现A select 到符合的条件 然后update 
        B 和A 因为是同时查询 所以查询到的条件是一样的,
        B 也update 最终造成A的操作被B改了,
现在要使得A select 和update 一气完成.中间不能打断.
即如果A 操作完成之前,别人就不能操作.
如何实现!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11

解决方案 »

  1.   

    在 select 的时候 加上 for update
      

  2.   

    试试
    begin
    exceute immediate 'alter table t lock in XXX mode';(什么锁你看着办)
    ..
    end;
      

  3.   

    select ... for update
    可以加上读锁
    使对这个存储过程的调用顺序执行
      

  4.   

    用select .... for update
    不就可以了。
    这样就是独占的,如果你不释放,别人是不能再申请到这个记录的。