我目前在一个表中有一个字符串值,我想改变它以便它引用另一个表。例如,目前我有:
| 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
这是有道理的,因为它使“撤消”无效。
有没有办法根据我的新数据迁移历史数据,以便我可以添加我的约束?
答案 0 :(得分:2)
您使用的是哪个版本的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的建议)