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_4:select 1 from dual for update wait 5;
执行sql_1,不提交,表dual被锁
执行sql_2,sql_2被阻塞,等待sql_1提交
执行sql_3,因为有nowait,所以立即返回错误信息 "ORA-00054 : 资源正忙,但指定以NOWAIT方式获取资源"
执行sql_4,因为有wait,所以等待5秒后如果发现资源被占用返回错误信息 "ORA-00054 : 资源正忙,但指定以NOWAIT方式获取资源"
总结:nowait关键字,通知Oracle该sql语句采用非阻塞的方式修改或删除数据,如果发现涉及到的数据被占有(被锁),则立即通知Oracle该资源被占用,返回错误信息