BEGIN
EXECUTE IMMEDIATE 'ALTER SESSION SET SKIP_UNUSABLE_INDEXES = TRUE';
EXECUTE IMMEDIATE 'ALTER SESSION DISABLE PARALLEL DML' ;
END;
/在3台甲骨文服务器中获得1/3的跟踪错误。甲骨文: 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;
/为什么在添加COMMIT之后没有看到这个问题?
发布于 2015-04-05 16:38:44
如果有一些语句在上述块之前启动任何事务,则会发生此问题。
在我的例子中,从造成错误的同义词中进行简单的选择。一旦在该事务之后添加commit,该块就执行得很好。
即使在您的情况下,如果在以下语句之前添加COMMIT之后执行而没有错误,那么就可以确定您缺少提交的事务。
COMMIT;
EXECUTE IMMEDIATE 'ALTER SESSION SET SKIP_UNUSABLE_INDEXES => TRUE';
EXECUTE IMMEDIATE 'ALTER SESSION DISABLE PARALLEL DML' ;对我来说,这个链接对admin004.htm#ADMIN12167很有帮助
谢谢/请参阅@DavidAldridge以获得更清晰的信息。
发布于 2015-04-05 14:35:36
这是:
EXECUTE IMMEDIATE 'ALTER SESSION SET SKIP_UNUSABLE_INDEXES = TRUE';..。启动一个新事务,然后尝试更改会话并行DML状态。
提交完成了事务并启动了另一个事务,因此您可以更改会话并行DML状态。
这里的事务文档:https://docs.oracle.com/database/121/CNCPT/transact.htm
编辑:可能是开始让你困惑。在PostgreSQL中,开始一个事务:http://www.postgresql.org/docs/9.1/static/sql-begin.html。在Oracle中,“事务从遇到第一个可执行SQL语句时开始”。
https://stackoverflow.com/questions/29458076
复制相似问题