1、执行SELECT语句时可以获得共享锁。Oracle通过锁定指定表来确保没有人能够在你使用表数据时修改该表的结构,但是,被查询的记录并没有进行锁定。共享锁无法阻止其他用户读取和修改表中的数据,只能阻止其他用户使用ALTER TABLE命令改变指定表的结构或用DROP TABLE命令删除指定表。多个用户可以同时获得相同数据上的共享锁。
2、执行DML语句时可以获得排他锁,并且正在被修改的所有记录都会获得排他锁。在你启动的事务内,排他锁阻止其他用户获得正在处理的数据上的排他锁,直至执行COMMIT或ROLLBACK语句。这样,两个用户就无法同时更新相同的数据。某个用户试图更新被另一个用户锁定的数据时,第一个用户必须等待至去除排他锁后才能进行操作。
SELECT语句对正在查询的数据不进行锁定。