Ответ 1
Эта странность может быть вызвана процессом SMON
, который отвечает за отслеживание между SCN и метками времени, на которые полагается запрос ретроспективного запроса. Существует таблица отображения SYS.SMON_SCN_TIME
, где каждые 5 минут добавляется новая запись SMON
.
Внутренне во время FLASHBACK TABLE
выполняется команда INSERT /*+ APPEND */ into SYS_TEMP_FBT SELECT /*+ FBTSCAN FULL(S) PARALLEL(S, DEFAULT) */ :1, :2, :3, rowid, SYS_FBT_INSDEL FROM "<schema>."TEST_TABLE" as of SCN :4 S
(обратите внимание, что в той же схеме создается таблица SYS_TEMP_FBT
), которая использует это сопоставление.
До Oracle 10.2 вам нужно было подождать целых 5 минут, чтобы преуспеть с запросом FLASHBACK на новом/измененном объекте. В 11.1 был введен столбец TIM_SCN_MAP
, чтобы сделать отображение более мелкозернистым. Максимально 100 отображений сохраняются в одном значении, которое составляет примерно 3 секунды в метрической шкале для отображения SCN.
Я пробовал много вещей, но я не думаю, что вы можете что-то сделать, но подождите около 3 секунд, чтобы избежать ошибки, потому что это обрабатывается асинхронно фоновым процессом без какого-либо пользовательского контроля.