为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:
【CPU】:
【问题描述】*:编译存储过程提示“锁超时”,里面的表没有被锁,也将v$session里active的session都close了,还是编译不成功;
然而,我将该存储过程复制改个名字新建就可以。。。
这个问题,我今天也遇到了,如果是编译存储过程提示锁超时的话,查询v$sessions系统视图里头可以发现,其实可能是因为这个存储过程一直在被调用,state处于active状态,导致修改存储过程一直提示锁超时,应该还是需要把当前这个active状态对应的sess_id会话关闭才行。
这个语句可以查出哪张表上的某种锁是由哪个会话里的操作加上的。
select a.*,b.NAME,c.SESS_ID from v$lock a
left join sysobjects b on b.ID=a.TABLE_ID
left join v$sessions c on a.TRX_ID=c.TRX_ID;