Как я могу перенести данные, добавив новый столбец с ограничениями, с включенными архивами флэшбэка? - PullRequest
2 голосов
/ 12 ноября 2010

В настоящее время в одной таблице есть строковое значение, которое я хотел бы изменить, чтобы оно ссылалось на другую таблицу.Например, в настоящее время у меня есть:

| Table: Animal       | 
-----------------------
| Name      | Class   |
|-----------|---------|
| Horse     | Mammal  |
| Crocodile | Reptile |

И я хочу, чтобы они ссылались на мою новую таблицу "AnimalClass", чтобы они выглядели так:

| Table: Animal       | 
-----------------------
| Name      | ClassId |
|-----------|---------|
| Horse     |    3    |
| Crocodile |    14   |

Я создал свой новыйтаблица и установить ClassId без каких-либо проблем.

К сожалению, когда я пытаюсь добавить ограничение внешнего ключа между моим новым Id и таблицей AnimalClass, я получаю эту ошибку:

SQL Error: ORA-55610: Invalid DDL statement on history-tracked table

Это делаетсмысл, потому что это делает недействительным «Отменить».

Есть ли способ перенести исторические данные в соответствии с моими новыми данными, чтобы я мог добавить свое ограничение?

1 Ответ

2 голосов
/ 15 ноября 2010

Какую версию Oracle вы используете (клиент и сервер)?Согласно этой теме есть проблемы с использованием старых клиентов: http://forums.oracle.com/forums/thread.jspa?threadID=945177 Если больше ничего не работает, можете ли вы использовать DBMS_FLASHBACK_ARCHIVE.DISASSOCIATE_FBA / REASSOCIATE_FBA?(В соответствии с рекомендациями http://download.oracle.com/docs/cd/E11882_01/appdev.112/e17125/adfns_flashback.htm#BJFFDCEH)

...