Oracle NOWAIT关键字的理解

sql_1:select 1 from dual for update;

sql_2:select 1 from dual for update;

sql_3:select 1 from dual for update nowait;

 

执行sql_1,不提交,表dual被锁

分支1):执行sql_2,sql_2被阻塞,等待sql_1提交

分支2):执行sql_3,因为有nowait,所以立即返回错误信息 "ORA-00054 : 资源正忙,但指定以NOWAIT方式获取资源"

 

总结:nowait关键字,通知Oracle该sql语句采用非阻塞的方式修改或删除数据,如果发现涉及到的数据被占有(被锁),则立即通知Oracle该资源被占用,返回错误信息

posted @ 2013-07-20 16:26  ArcerZhang  阅读(1899)  评论(0编辑  收藏  举报