ORA-01555:快照太旧:回滚段号,名称“”太小
当我在写完提交后调用程序时。
实际上,我想将一个表的数据复制到临时表中。 但数据没有插入并给出ORA-01555:快照太旧:回滚段号,名称“”太小错误。
请给我解决方案。答案 0 :(得分:0)
将数据从一个表复制到另一个表的最简单方法是创建如下所示的新表:
create table table2 as select * from table1;
答案 1 :(得分:0)
从操作开始到发生Oracle错误的时间需要多长时间?在我看过的情况下,时间可以用几个小时来衡量,这是一个很好的迹象,表明工作应该在每个块之后提交的块中被切断。如果时间很短,您可能刚刚耗尽磁盘空间或者Oracle实例配置错误。
答案 2 :(得分:0)
你得到“ORA-01555:快照太旧:带有名称的回滚段号”通常在SQL运行时太长时。这是因为读取器为一致读取所需的回滚记录会被其他编写者覆盖。如果您共享代码段,将会很有帮助。
答案 3 :(得分:0)
ORA-01555:快照太旧:回滚段号9,名称为“ SYSSMU 9 *
解决方案:
步骤:1)检查undo_retention参数的大小。 如果是900.通过第3步增加到3600。
第2步:SQL> show参数undo_retention;
NAME TYPE VALUE
undo_retention integer 900
第3步:SQL> ALTER SYSTEM SET UNDO_RETENTION = 3600;
系统改变了。
将表空间撤消到自动扩展。
然后再试一次。