FOR UPDATE NOWAIT和 FOR UPDATE的区别
别的事务要对这个表进行写操作时,是等待一段时间还是马上就被数据库系统拒绝而返回.制定采用NOWAIT方式来进行检索,所以当发现数据被别的SESSION锁定中的时候,就会迅速返回ORA-00054错误,内容是资源正忙, 但指定以 NOWAIT 方式获取资源。所以在程序中我们可以采用NOWAIT方式迅速判断当前数据是否被锁定中,如果锁定中的话,就要采取相应的业务措施进行处理。
如:当先(1)SELECT * FROM TABLEA FOR UPDATE
然后再(2-1)SELECT * FROM TABLEA FOR UPDATE NOWAIT--直接返回错误;但是以(2-2)SELECT * FROM TABLEA FOR UPDATE执行会阻塞等待,直到(1)的提交或回滚掉
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/35489/viewspace-670539/ ,如需转载,请注明出处,否则将追究法律责任。