问题描述
嗨,
请参见下文:-
为什么alter session语句在收集统计信息之前而不是之后会抛出错误?
请参见下文:-
SQL> create table t (x int); Table created. SQL> insert into t values (1); 1 row created. SQL> alter session set isolation_level=serializable; ERROR: ORA-01453: SET TRANSACTION must be first statement of transaction SQL> exec dbms_stats.gather_table_stats( user, 'T' ); PL/SQL procedure successfully completed. SQL> alter session set isolation_level=serializable; Session altered.
为什么alter session语句在收集统计信息之前而不是之后会抛出错误?
专家解答
这与直接收集统计信息无关-这是因为如果您当前处于活动状态,则无法设置隔离级别。例如
gather_stats调用进行了提交,这就是alter会话在此之后工作的原因。
SQL> create table t (x int); Table created. SQL> insert into t values (1); 1 row created. SQL> commit; Commit complete. SQL> alter session set isolation_level=serializable; Session altered.
gather_stats调用进行了提交,这就是alter会话在此之后工作的原因。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




