0

我确实有一个很大的迁移过程,在这种情况下,它试图将一行插入一个具有主键约束和唯一索引的表中。在插入约束之前禁用(与 SQL 开发人员检查)并且索引被标记为不可用(与 SQL 开发人员再次检查)。但是仍然在插入时给出错误

01502. 00000 -  "index '%s.%s' or partition of such index is in unusable state"

所以我想尝试从 SQL 开发人员手动执行查询,结果仍然相同。我什至明确地尝试设置会话(和系统)跳过不可用的索引,像这样

BEGIN
EXECUTE IMMEDIATE 'ALTER SESSION SET SKIP_UNUSABLE_INDEXES = TRUE';
single row insert line
END;

但仍然是同样的错误。我的理解是,如果禁用约束;索引不可用,我们跳过我们应该能够插入的不可用索引。这是正确的吗?我在这里错过了一些非常琐碎的事情吗?任何建议/帮助表示赞赏。

PS:甲骨文11.2.0.1.0

4

2 回答 2

2

如果索引不是唯一的,您可以设置 SKIP_UNUSABLE_INDEXES = true 并且它应该可以工作。但是,在您的情况下,由于索引是唯一的,我认为您不能这样做。

http://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams229.htm

于 2012-12-13T13:05:57.187 回答
0

为具有不可用主键的所有行创建代理键。

于 2012-12-14T06:10:42.500 回答