文档解释
ORA-22919: dangling REF error or lock object failed for no wait request
Cause: The error could be one of the following. The object corresponding to the REF does not exist or the object was locked by another user and the lock with nowait request failed.
Action: Ensure that the REF value is pointing to an existing object or issue a lock request without the nowait option.
这是一个Oracle的错误,指的是在执行操作时遇到了失去或悬挂的引用(REF)错误,或尝试获取同步锁对象失败。
官方解释
ORA-22919: 连接到不存在的对象或悬挂的REF错误(但没有收到no wait模式的请求)。
常见案例
ORA-22919最常见的出现场景是当用于并发控制的sync_lock_object语句不存在或被其他会话持有的时候,而当前会话没有使用no_wait模式。
一般处理方法及步骤
1、首先你需要确定让ORA-22919出错的SQL是用来执行什么操作,是否是用来获取sync_lock_object锁。
2、确认sync_lock_object对象是否存在,是否被其他会话持有。
3、如果sync_lock_object已经被其他会话持有,你需要查看并关闭相应的会话,以释放sync_lock_object对象。
4、如果sync_lock_object对象不存在,你需要创建它:
BEGIN
sys.sync_lock_object (object_name, false);
END;
5、运行ORA-22919出错的SQL语句,使用no_wait模式,以避免出现该错误:
BEGIN
sys.sync_lock_object (object_name, true, ‘no wait’);
END;