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;
執(zhí)行sql_1,不提交,表dual被鎖
執(zhí)行sql_2,sql_2被阻塞,等待sql_1提交
執(zhí)行sql_3,因?yàn)橛衝owait,所以立即返回錯(cuò)誤信息 "ORA-00054 : 資源正忙,但指定以NOWAIT方式獲取資源"
執(zhí)行sql_4,因?yàn)橛衱ait,所以等待5秒后如果發(fā)現(xiàn)資源被占用返回錯(cuò)誤信息 "ORA-00054 : 資源正忙,但指定以NOWAIT方式獲取資源"
總結(jié):nowait關(guān)鍵字,通知Oracle該sql語句采用非阻塞的方式修改或刪除數(shù)據(jù),如果發(fā)現(xiàn)涉及到的數(shù)據(jù)被占有(被鎖),則立即通知Oracle該資源被占用,返回錯(cuò)誤信息