Я удалил таблицу в Oracle, как я могу получить ее из табличного пространства отмены?
Я случайно уронил довольно большой стол - мусорная корзина не включена. Я вполне уверен, что данные все еще существуют в табличном пространстве UNDO, но я не уверен, как их получить. Я воссоздал таблицу точно так, как она была до того, как ее уронили - структура точно такая же. Тем не менее, когда я пытаюсь вспомнить таблицу, я получаю эту ошибку:
flashback table tablex to timestamp (systimestamp - interval '120' minute);
Error: 01466
DBD::Oracle::db do failed: ORA-01466: unable to read data - table definition has changed
Любая идея, как я могу преодолеть эту ошибку? Из всех поисков, которые я сделал, кажется, что он считает, что таблица не является структурно такой же, как когда она была отброшена.
1 ответ
Я думаю, что вам не следует воссоздавать таблицу самостоятельно - она будет воссоздана для вас Oracle при ее возврате, я рекомендую следующую статью: http://www.oracle-base.com/articles/10g/flashback-10g.php
Пример:
CREATE TABLE flashback_table_test (
id NUMBER CONSTRAINT pk_flashback_table_test PRIMARY KEY
);
DROP TABLE flashback_table_test;
FLASHBACK TABLE flashback_table_test TO BEFORE DROP;
Я думаю, вам нужно будет перепрошить его, используя номер SCN перед номером, когда вы вручную воссоздали таблицу.