当程序在向数据库中的一条记录的某个字段写入数据的时候,程序的其它代码要访问这个字段的信息必须要等到写入这个字段的操作完成以后才能访问,请问这样的想法和功能能实现吗????请各位说说具体的实现步骤吧,不胜感激!!!!

解决方案 »

  1.   

    不能访问是指不能select还是update,如果是不能update,oracle会自动实现。如果是不允许其他用户select,貌似没有简单的方法,这个需求也太奇怪了。期待楼下高人来解答。
      

  2.   

    用行锁,UPDATE TABLE SET FIELD='' FOR NOWAIT
      

  3.   

    如果需要update串行
    如:修改empno为7499的员工姓名
    --1.锁住一行,锁住后其它人是不能修改这一行的
    select * from emp t where t.empno='7499' for update;
    --2.修改
    update emp t set ename='zhangshan' where t.empno=7499;
    --3.提交并释放锁
    commit;
      

  4.   

    这个不可能吧  除非update了就提交
    你已经在update了那么就是脏数据了  不提交的话 select肯定是放回以前的数据  你还想访问update了但未提交的新数据  那锁是用来干嘛的  数据一致性了
    至于楼上各位说的update for nowait 也不是实现楼主要求的
    而是在对已有加锁数据的处理中的差别
    一个是继续等待  等待之前的解锁 然后自己加锁
    一个是不等待  直接返回错误信息