目前我在程序里面使用的是:LOCK TABLE XXX IN EXCLUSIVE MODE 来对Table做lock,同时用户不能对该Table XXX做insert,update,delete,select动作。但该操作涉及到的内容太多,事实上我只需要正对某条记录做上述lock而已。请问各位大侠,oracle是否有这种row lock?
之前有试过select...for update,但这种方式lock的记录还是能被其他系统select到,我需要的是被lock的记录,连select也不行。请问有什么方法对row能达到lock table的效果么?
小弟先谢过了!

解决方案 »

  1.   

    lock应该不行吧,不能阻止select!
      

  2.   

    LOCK   TABLE   XXX   IN   EXCLUSIVE   MODE
    这种模式应该是可以阻止select的吧
      

  3.   

    SQL> select * from test_2;
     
    C1       C2
    ---------- ----------
    10       20
     
    SQL> LOCK       TABLE       test_2       IN       EXCLUSIVE       MODE;
     
    Table(s) locked
     
    SQL> select * from test_2;
     
    C1       C2
    ---------- ----------
    10       20SQL> select object_id from all_objects where object_name='TEST_2';
     
     OBJECT_ID
    ----------
        107886
     
     
    SQL> select count(*) from v$locked_object where object_id=107886;
     
      COUNT(*)
    ----------
             1
     
    SQL>