ORA-39806: The attempt to lock string parent table string string string failed.

文档解释

ORA-39806: The attempt to lock string parent table string string string failed.

Cause: While loading the child table of a partitioning referential constraint, the parent table must be locked in SHARE mode.

Action: Determine why the parent table could not be locked and retry.

ORA-39806错误指出,数据库尝试锁定某个父表时失败了。

官方解释

常见案例

一般处理方法及步骤

1.查看表中是否有行锁竞争,可以通过执行以下查询来检查:

“`

SELECT e.sid, e.serial#, o.Object_name, o.object_type, e.row_wait_obj#

FROM V$SESSION e, DBA_OBJECTS o

WHERE e.row_wait_obj# = o.Object_id

and e.row_wait_file# = o.Data_object_id;

“`

2.降低当前会话的行锁争用,可以采用以下操作:a.增加锁等待,b.扩大更新或 delete 语句的范围以一次处理多个行,c.尽量避免使用多次更新语句。

3.如果没有行锁争用,则可能是由于数据库本身的问题导致的,此时检查正在执行更新操作的会话。可以通过执行以下查询来检查正在执行操作的会话:

“`

select SID,serial#,pstate,sql_id

from v$session

where blocking_session is not null;

“`

4.停止会话并重启数据库:若以上方法无效,可以停止检查出的会话,并重启数据库,以释放锁定的行。

你可能感兴趣的