Ошибка при вставке BLOB-данных в базу данных oracle - PullRequest
0 голосов
/ 04 марта 2020

У меня есть 2 схемы в одной базе данных с тем же именем таблицы и структурой

В таблице BLOB schema_1 вставляются записи реальных данных. Я создал другую схему schema_2 и создал то же имя таблицы и структуру schema_1.

Теперь, когда я пытаюсь вставить записи из таблицы schema_1 в схему schema_2, я получаю следующую ошибку

ORA-01555: snapshot too old: rollback segment number  with name "" too small
ORA-22924: snapshot too old

Запрос вставки schema_2:

insert into blob_table
(id, blob_col)
select id, blob_col from tab_schema_1
where blob_col is not null;

Oracle База данных 11G 64bit с БД РАЗМЕР БЛОКА 32768

Как решить эту проблему? Спасибо

Ответы [ 2 ]

1 голос
/ 05 марта 2020

Если в Automati c Режим отмены управления, увеличьте значение UNDO_RETENTION. В противном случае используйте большие сегменты отката.

[https://taliphakanozturken.wordpress.com/2018/09/12/how-to-optimize-oracle-undo-parameters/] [1]

время удержания отмены = (размер отмены) / (размер блока дБ × блок отмены на второй)

SQL>ALTER SYSTEM SET UNDO_RETENTION = 1000 TO 2400; --1000 and 2400 are examples
0 голосов
/ 04 марта 2020

Может быть, вам нужно вставить в schema2.blob_table (id, blob_col) выбрать id, blob_col из schema1.tab_schema_1, где schema1.blob_col не является нулевым;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...