问题的原因是事务所使用的回滚段达到了maxextents,无法继续扩展,解决办法如下:1、在system用户下执行如下sql语句,得到segment_name select segment_name from dba_rollback_segs where segment_id=3;2、执行如下命令: alter rollback segment SEGMENT_NAME storage(maxextents 300); 其中300为maxextents的值。3、在执行事务前,发出如下命令, set transaction use rollback segment ROLLBACK_SEGMENT_NAME; 其中ROLLBACK_SEGMENT_NAME为步骤2的SEGMENT_NAME,意思是本事务指定要使用的回滚段。 注意,上面的命令可以用如下命令替代: EXECUTE dbms_transaction.use_rollback_segment('ROLLBACK_SEGMENT_NAME');4、重新执行事务。
select segment_name from dba_rollback_segs where segment_id=3;2、执行如下命令:
alter rollback segment SEGMENT_NAME storage(maxextents 300);
其中300为maxextents的值。3、在执行事务前,发出如下命令,
set transaction use rollback segment ROLLBACK_SEGMENT_NAME;
其中ROLLBACK_SEGMENT_NAME为步骤2的SEGMENT_NAME,意思是本事务指定要使用的回滚段。
注意,上面的命令可以用如下命令替代:
EXECUTE dbms_transaction.use_rollback_segment('ROLLBACK_SEGMENT_NAME');4、重新执行事务。