ORA-39781: Direct path stream loads are not allowed after another context loading the same table has ended
Cause: Attempt to load a stream in one context after another loading the same table has ended.
Action: Close all contexts before trying to create another that loads the same table as a previous context in the same session.
ORA-39781是一个基于表的错误,它表明另一个上下文加载了相同的表,并且加载完成后不允许直接流加载。
通常用于诊断此错误的情况是使用V$BH子句中的KTBHXC:$KTBHXC来执行查询,这将显示已由错误上下文加载的表:
SELECT KTBHXC FROM V$bh WHERE KTBHXC IN (SELECT KTBHXC FROM DBA_OBJEAS WHERE OBJECT_NAME= ‘&tableName’) ORDER BY KTBHXC;
ORA-39781通常与dbms_parallel_execute程序一起使用时出现。 它还可以出现在使用多个数据库上下文对表执行更新或操作时。
正确处理ORA-39781错误的步骤是:
1.使用V$BH子句中的KTBHXC:$KTBHXC来查询正在运行的会话,查看哪个会话正在加载表。
2.将上述会话杀死。
3.重新尝试操作表。