BEGIN
EXECUTE IMMEDIATE 'ALTER SESSION SET SKIP_UNUSABLE_INDEXES = TRUE';
EXECUTE IMMEDIATE 'ALTER SESSION DISABLE PARALLEL DML' ;
END;
/
Run Code Online (Sandbox Code Playgroud)
在 3 个 oracle 服务器中有 1 个出现以下错误。甲骨文:11.2.0.4
ora 12841 无法更改事务中的会话并行 DML 状态
但是添加 COMMIT 后系统运行良好
BEGIN
EXECUTE IMMEDIATE 'ALTER SESSION SET SKIP_UNUSABLE_INDEXES = TRUE';
COMMIT;
EXECUTE IMMEDIATE 'ALTER SESSION DISABLE PARALLEL DML' ;
END;
/
Run Code Online (Sandbox Code Playgroud)
为什么在添加 COMMIT 后没有看到这个问题?
如果您有一些语句在上述块之前启动任何事务,则会出现此问题。
在我的例子中,从同义词中进行简单的选择导致了错误。一旦在该事务之后添加提交,该块就可以正常执行。
即使在您的情况下,如果在以下语句执行之前添加 COMMIT 之后没有错误,那么可以肯定的是,您缺少某些事务的提交。
COMMIT;
EXECUTE IMMEDIATE 'ALTER SESSION SET SKIP_UNUSABLE_INDEXES => TRUE';
EXECUTE IMMEDIATE 'ALTER SESSION DISABLE PARALLEL DML' ;
Run Code Online (Sandbox Code Playgroud)
对我来说这个链接很有帮助 http://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_admin004.htm#ADMIN12167
谢谢/请参阅@DavidAldridge以获得更清晰的信息