Sql 删除Oracle 10中的锁
我在尝试更新sqlplus中的列值时遇到问题 它基本上不会完成,只是挂起。我想知道是否有任何方法可以强制移除oracle中的锁 我注意到一个名为v$locked_object的表,它确实包含一个与我遇到的问题相关的onject ID 希望我解释得足够好Sql 删除Oracle 10中的锁,sql,oracle,sqlplus,Sql,Oracle,Sqlplus,我在尝试更新sqlplus中的列值时遇到问题 它基本上不会完成,只是挂起。我想知道是否有任何方法可以强制移除oracle中的锁 我注意到一个名为v$locked_object的表,它确实包含一个与我遇到的问题相关的onject ID 希望我解释得足够好 提前感谢您的帮助 可能是其他人更新了相同的表,但尚未提交。它甚至可能是你(在不同的工具或不同的会话中) 解除锁定的最简单方法是在另一个会话中提交工作。成功解决了此问题 我查看了DBA_BLOCKERS表并获得了会话ID。然后终止了会话并移除了锁。
提前感谢您的帮助 可能是其他人更新了相同的表,但尚未提交。它甚至可能是你(在不同的工具或不同的会话中)
解除锁定的最简单方法是在另一个会话中提交工作。成功解决了此问题
我查看了DBA_BLOCKERS表并获得了会话ID。然后终止了会话并移除了锁。这将完全满足您的目的:
SELECT SESSION_ID FROM DBA_DML_LOCKS WHERE NAME = <TABLE_NAME>;
找到有问题的元组SID,SERIAL 35;
并按如下方式释放它:
ALTER SYSTEM KILL SESSION 'SID, SERIAL#';
您是否找到了锁定对象的进程以及该进程正在执行的操作?解决问题肯定比绕开它好?(我相当肯定你的问题的答案是否定的)。嗨,我通过查找DBA_拦截器找到了这个问题的原因。获取会话ID并将其终止。在检查dba_阻止程序后,我在应用程序中找到了保持会话,从而解决了此问题。但我会记住未来的ALTER命令。由于众议员ThanksHi Mari支持率低,无法对答案进行投票。谢谢您的这些命令。我能够释放数据库中锁定的表。谢谢你,伙计!
ALTER SYSTEM KILL SESSION 'SID, SERIAL#';