ORA-01555: снимок слишком старый: номер сегмента отката с именем "" слишком мал - PullRequest
1 голос
/ 20 июня 2011

ORA-01555: снимок слишком старый: номер сегмента отката с именем "" слишком маленький

Когда я после этого вызываю процедуру, я пишу commit.

На самом деле, я хочу скопировать данные одной таблицы во временную таблицу. но данные не вставляются и выдают ORA-01555: снимок слишком старый: номер сегмента отката с именем "" слишком мал. Ошибка.

Пожалуйста, дайте мне решение.

Ответы [ 4 ]

0 голосов
/ 15 марта 2015

ORA-01555: снимок слишком старый: сегмент отката номер 9 с именем " SYSSMU 9 *

Решение:

Шаг: 1) проверить размер параметра undo_retention... если это 900. увеличить до 3600, выполнив шаг 3.

Шаг 2: SQL> показать параметр undo_retention;

ИМЯ ТИП ЗНАЧЕНИЕ


undo_retention integer 900

Шаг 3: SQL> ALTER SYSTEM SET UNDO_RETENTION = 3600;

Система изменена.

Увеличьте Undo Table space до Auto Extended на.

, затем попробуйтееще раз.

0 голосов
/ 21 июня 2011

Сколько времени занимает от начала операции до момента возникновения ошибки Oracle?В тех ситуациях, которые я видел, время можно измерять в часах, и это было хорошим показателем того, что работу нужно было разрезать на фрагменты с коммитами после каждого фрагмента.Если этого времени мало, возможно, вам просто не хватает места на диске или неправильно настроен экземпляр Oracle.

0 голосов
/ 30 января 2013

Вы получаете «ORA-01555: снимок слишком старый: номер сегмента отката с именем» обычно, когда SQL выполняется слишком долго.Это связано с тем, что записи отката, необходимые читателю для согласованного чтения, перезаписываются другими авторами.Будет полезно, если вы поделитесь фрагментом кода.

0 голосов
/ 20 июня 2011

Самый простой способ скопировать данные из одной таблицы в другую - создать новую таблицу следующим образом:

create table table2 as select * from table1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...