目前我在程序里面使用的是: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的效果么?
小弟先谢过了!
之前有试过select...for update,但这种方式lock的记录还是能被其他系统select到,我需要的是被lock的记录,连select也不行。请问有什么方法对row能达到lock table的效果么?
小弟先谢过了!
这种模式应该是可以阻止select的吧
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>