示例:数据库表(如:SYS_DATASOURCE)进行for update查询后,再次执行查询操作,一直处于“正在执行”状态。
问题原因:执行select * from SYS_DATASOURCE for update之后,修改字段信息,没有提交。随后执行其它查询语句,导致锁表。
解决方法:
查询锁定记录:SELECT s.sid, s.serial# FROM v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid;
删除锁定记录:ALTER system KILL session 'SID,serial#';
当执行forupdate查询并修改字段但未提交时,可能导致后续查询被锁定。通过查询锁定记录(SELECT sid, serial# FROM v$locked_object...)并使用ALTER SYSTEM KILL SESSION 'SID,serial#'来解除锁定,可以解决此问题。
369

被折叠的 条评论
为什么被折叠?



