刚刚才开始学oracle 查验证一下锁的实效,我开了两个sql/plus ,每一个用不同的用户名,为什么这两个用户名,可以同时更改同一个表中的数据呢,是不是我那里的设置有问题呢?我在书上看到了,如果一个用户在没有commint or rollback 这前其它用户是不能对同一个表进 update or delete 的呀,为什么我操作的没有出现等待的那个效果呢?  我用的是9i
谢谢各位的光临.

解决方案 »

  1.   

    更改同一张表的不同行是可以的
    但如果想要更改同一条行那就不行了ORACLE的排他锁是加在行级上的楼主可以做个小实验试试
      

  2.   

    首先要确定一点,就是同一张表,是不是同一个用户里面的表?例如A用户里的a表,B用户要对A.a操作,才是同一张表。另外,如楼上所说,ORACLE是对操作的行进行加锁的。如果要试下锁表的话,可以用 select * from a for update 语句来试。--a指表名。
      

  3.   

    要对同一行记录进行update你才看的到效果。否则每次改一行记录都锁整个表,那对这个表的操作不是变成线性的了吗?
      

  4.   

    不是共享锁吗,select 还是可以的嘛
      

  5.   

    试着在两边运行一下 SELECT * FROM table_name FOR UPDATE;