2

我目前在一个表中有一个字符串值,我想更改它以引用另一个表。例如,目前我有:

| 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

这是有道理的,因为它使“撤消”无效。

有没有办法根据我的新数据迁移历史数据,以便我可以添加我的约束?

4

1 回答 1

2

您使用的是什么版本的 Oracle(客户端和服务器)?根据此线程,使用旧客户端存在问题:http : //forums.oracle.com/forums/thread.jspa?threadID=945177 如果没有其他方法,您可以使用 DBMS_FLASHBACK_ARCHIVE.DISSASSOCIATE_FBA/REASSOCIATE_FBA 吗?(由http://download.oracle.com/docs/cd/E11882_01/appdev.112/e17125/adfns_flashback.htm#BJFFDCEH推荐)

于 2010-11-15T04:30:32.843 回答