Oracle:更新语句没有等待/没有失败
发布时间:2021-04-01 05:43:32 所属栏目:站长百科 来源:网络整理
导读:我在多应用程序环境中有许多竞争更新语句.根据目前的设计,死锁频繁. 如有必要,可以跳过除一个更新之外的所有更新,并在下一个时间间隔更新. 我可以将NOWAIT应用于更新声明吗?当无法获得锁定时,我可以让我的声明无声地失败吗?我可以指定尝试获取锁定的时间吗
我在多应用程序环境中有许多竞争更新语句.根据目前的设计,死锁频繁. 如有必要,可以跳过除一个更新之外的所有更新,并在下一个时间间隔更新. 我可以将NOWAIT应用于更新声明吗?当无法获得锁定时,我可以让我的声明无声地失败吗?我可以指定尝试获取锁定的时间吗? 解决方法不能在update语句中指定NOWAIT – 必须在SELECT FOR UPDATE语句中指定NOWAIT.是的,您可以静默地使select更新失败 – 如果您指定NOWAIT并处理生成的异常: BEGIN SELECT x FROM table FOR UPDATE NOWAIT; EXCEPTION WHEN OTHERS THEN <handle exception> END; 是的,可以指定一段时间等待.在上例中代替NOWAIT,指定WAIT n,其中n是等待锁定的秒数.如果你在那段时间内无法获得锁定,它将再次失败,使用ORA-00054,您可以像以前一样处理. (编辑:湘西站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |